From 3e6cf87b5cf48323efbf146e734bbadc7efb5078 Mon Sep 17 00:00:00 2001 From: brianosman Date: Tue, 20 Sep 2016 09:56:23 -0700 Subject: [PATCH] Cleanup some sRGB TODOs, mostly around setting GrPaint flags correctly BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2358433004 Review-Url: https://codereview.chromium.org/2358433004 --- gm/constcolorprocessor.cpp | 1 - src/core/SkSpecialSurface.cpp | 12 ++++++------ src/effects/SkLightingImageFilter.cpp | 2 +- src/effects/SkMorphologyImageFilter.cpp | 4 ++-- src/effects/SkXfermodeImageFilter.cpp | 2 +- 5 files changed, 10 insertions(+), 11 deletions(-) diff --git a/gm/constcolorprocessor.cpp b/gm/constcolorprocessor.cpp index 166014d..ef23f78 100644 --- a/gm/constcolorprocessor.cpp +++ b/gm/constcolorprocessor.cpp @@ -99,7 +99,6 @@ protected: } else { skPaint.setColor(kPaintColors[paintType]); } - // SRGBTODO: No sRGB inputs allowed here? SkAssertResult(SkPaintToGrPaint(context, drawContext, skPaint, viewMatrix, &grPaint)); diff --git a/src/core/SkSpecialSurface.cpp b/src/core/SkSpecialSurface.cpp index 4c482df..85bb61a 100644 --- a/src/core/SkSpecialSurface.cpp +++ b/src/core/SkSpecialSurface.cpp @@ -137,12 +137,12 @@ public: ~SkSpecialSurface_Gpu() override { } sk_sp onMakeImageSnapshot() override { - // TODO: Supply color space from fDrawContext, once it's present - sk_sp tmp(SkSpecialImage::MakeFromGpu(this->subset(), - kNeedNewImageUniqueID_SpecialImage, - fDrawContext->asTexture(), - nullptr, - &this->props())); + sk_sp tmp(SkSpecialImage::MakeFromGpu( + this->subset(), + kNeedNewImageUniqueID_SpecialImage, + fDrawContext->asTexture(), + sk_ref_sp(fDrawContext->getColorSpace()), + &this->props())); fDrawContext = nullptr; return tmp; } diff --git a/src/effects/SkLightingImageFilter.cpp b/src/effects/SkLightingImageFilter.cpp index 0c82b16..c8d2154 100644 --- a/src/effects/SkLightingImageFilter.cpp +++ b/src/effects/SkLightingImageFilter.cpp @@ -390,7 +390,7 @@ void SkLightingImageFilterInternal::drawRect(GrDrawContext* drawContext, const SkIRect& bounds) const { SkRect srcRect = dstRect.makeOffset(SkIntToScalar(bounds.x()), SkIntToScalar(bounds.y())); GrPaint paint; - // SRGBTODO: AllowSRGBInputs? + paint.setAllowSRGBInputs(drawContext->isGammaCorrect()); sk_sp 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 ebce1b3..4e6032f 100644 --- a/src/effects/SkMorphologyImageFilter.cpp +++ b/src/effects/SkMorphologyImageFilter.cpp @@ -394,7 +394,7 @@ static void apply_morphology_rect(GrDrawContext* drawContext, float bounds[2], Gr1DKernelEffect::Direction direction) { GrPaint paint; - // SRGBTODO: AllowSRGBInputs? + paint.setAllowSRGBInputs(drawContext->isGammaCorrect()); paint.addColorFragmentProcessor(GrMorphologyEffect::Make(texture, direction, radius, @@ -414,7 +414,7 @@ static void apply_morphology_rect_no_bounds(GrDrawContext* drawContext, GrMorphologyEffect::MorphologyType morphType, Gr1DKernelEffect::Direction direction) { GrPaint paint; - // SRGBTODO: AllowSRGBInputs? + paint.setAllowSRGBInputs(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 c82482d..558e29a 100644 --- a/src/effects/SkXfermodeImageFilter.cpp +++ b/src/effects/SkXfermodeImageFilter.cpp @@ -179,7 +179,6 @@ sk_sp SkXfermodeImageFilter::filterImageGPU(SkSpecialImage* sour } GrPaint paint; - // SRGBTODO: AllowSRGBInputs? sk_sp bgFP; if (backgroundTex) { @@ -248,6 +247,7 @@ sk_sp SkXfermodeImageFilter::filterImageGPU(SkSpecialImage* sour if (!drawContext) { return nullptr; } + paint.setAllowSRGBInputs(drawContext->isGammaCorrect()); SkMatrix matrix; matrix.setTranslate(SkIntToScalar(-bounds.left()), SkIntToScalar(-bounds.top())); -- 2.7.4