aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar brianosman <brianosman@google.com>2016-09-22 14:50:58 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-09-22 14:50:58 -0700
commit5a9c2f110e4f1a78d9bfedcf708168909706d7fd (patch)
tree615e7b191814888f8cb88043d85bf9b5472eff5f
parentc68e8924c57487f39d5647f6e68bde522940b728 (diff)
sRGB cleanup in image filters. Ensure we configure paints correctly.
Net effect of the two calls is (basically) the same, but given that we're propagating from isGammaCorrect on the DC, I figured it makes sense to use the same-named API. More importantly, a couple places had slipped through, so those draws would ignore sRGB-ness of inputs entirely. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2357413004 Review-Url: https://codereview.chromium.org/2357413004
-rw-r--r--src/core/SkImageFilter.cpp1
-rw-r--r--src/effects/SkDisplacementMapEffect.cpp1
-rw-r--r--src/effects/SkLightingImageFilter.cpp2
-rw-r--r--src/effects/SkMorphologyImageFilter.cpp4
-rw-r--r--src/effects/SkXfermodeImageFilter.cpp2
5 files changed, 6 insertions, 4 deletions
diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp
index 9ec6f2c28f..be48ca17ba 100644
--- a/src/core/SkImageFilter.cpp
+++ b/src/core/SkImageFilter.cpp
@@ -292,6 +292,7 @@ sk_sp<SkSpecialImage> SkImageFilter::DrawWithFP(GrContext* context,
if (!drawContext) {
return nullptr;
}
+ paint.setGammaCorrect(drawContext->isGammaCorrect());
SkIRect dstIRect = SkIRect::MakeWH(bounds.width(), bounds.height());
SkRect srcRect = SkRect::Make(bounds);
diff --git a/src/effects/SkDisplacementMapEffect.cpp b/src/effects/SkDisplacementMapEffect.cpp
index 8fc0ec1366..8d068072a7 100644
--- a/src/effects/SkDisplacementMapEffect.cpp
+++ b/src/effects/SkDisplacementMapEffect.cpp
@@ -344,6 +344,7 @@ sk_sp<SkSpecialImage> SkDisplacementMapEffect::onFilterImage(SkSpecialImage* sou
if (!drawContext) {
return nullptr;
}
+ paint.setGammaCorrect(drawContext->isGammaCorrect());
drawContext->drawRect(GrNoClip(), paint, matrix, SkRect::Make(colorBounds));
diff --git a/src/effects/SkLightingImageFilter.cpp b/src/effects/SkLightingImageFilter.cpp
index 138ba8bdc4..66d3a17883 100644
--- a/src/effects/SkLightingImageFilter.cpp
+++ b/src/effects/SkLightingImageFilter.cpp
@@ -392,7 +392,7 @@ void SkLightingImageFilterInternal::drawRect(GrDrawContext* drawContext,
const SkIRect& bounds) const {
SkRect srcRect = dstRect.makeOffset(SkIntToScalar(bounds.x()), SkIntToScalar(bounds.y()));
GrPaint paint;
- paint.setAllowSRGBInputs(drawContext->isGammaCorrect());
+ paint.setGammaCorrect(drawContext->isGammaCorrect());
sk_sp<GrFragmentProcessor> fp(this->makeFragmentProcessor(src, matrix, srcBounds,
boundaryMode));
paint.addColorFragmentProcessor(std::move(fp));
diff --git a/src/effects/SkMorphologyImageFilter.cpp b/src/effects/SkMorphologyImageFilter.cpp
index b8d4884239..82e47c5081 100644
--- a/src/effects/SkMorphologyImageFilter.cpp
+++ b/src/effects/SkMorphologyImageFilter.cpp
@@ -395,7 +395,7 @@ static void apply_morphology_rect(GrDrawContext* drawContext,
float bounds[2],
Gr1DKernelEffect::Direction direction) {
GrPaint paint;
- paint.setAllowSRGBInputs(drawContext->isGammaCorrect());
+ paint.setGammaCorrect(drawContext->isGammaCorrect());
paint.addColorFragmentProcessor(GrMorphologyEffect::Make(texture,
direction,
radius,
@@ -415,7 +415,7 @@ static void apply_morphology_rect_no_bounds(GrDrawContext* drawContext,
GrMorphologyEffect::MorphologyType morphType,
Gr1DKernelEffect::Direction direction) {
GrPaint paint;
- paint.setAllowSRGBInputs(drawContext->isGammaCorrect());
+ paint.setGammaCorrect(drawContext->isGammaCorrect());
paint.addColorFragmentProcessor(GrMorphologyEffect::Make(texture, direction, radius,
morphType));
paint.setPorterDuffXPFactory(SkXfermode::kSrc_Mode);
diff --git a/src/effects/SkXfermodeImageFilter.cpp b/src/effects/SkXfermodeImageFilter.cpp
index 62daa5ae3b..c7e4143e11 100644
--- a/src/effects/SkXfermodeImageFilter.cpp
+++ b/src/effects/SkXfermodeImageFilter.cpp
@@ -250,7 +250,7 @@ sk_sp<SkSpecialImage> SkXfermodeImageFilter::filterImageGPU(
if (!drawContext) {
return nullptr;
}
- paint.setAllowSRGBInputs(drawContext->isGammaCorrect());
+ paint.setGammaCorrect(drawContext->isGammaCorrect());
SkMatrix matrix;
matrix.setTranslate(SkIntToScalar(-bounds.left()), SkIntToScalar(-bounds.top()));