From 982eb7f377a0c771345276558072deb2fcea0d3e Mon Sep 17 00:00:00 2001 From: brianosman Date: Mon, 6 Jun 2016 13:10:58 -0700 Subject: Add new SkSourceGammaTreatment enum, used in situations like mipmap construction, where we need to know if we should respect (vs. ignore) the gamma encoding of sRGB tagged images. Plumb that extensively. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2037413002 Review-Url: https://codereview.chromium.org/2037413002 --- src/image/SkImageShader.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src/image/SkImageShader.cpp') diff --git a/src/image/SkImageShader.cpp b/src/image/SkImageShader.cpp index d12ee030a2..b2fab39e11 100644 --- a/src/image/SkImageShader.cpp +++ b/src/image/SkImageShader.cpp @@ -83,10 +83,12 @@ void SkImageShader::toString(SkString* str) const { #include "effects/GrBicubicEffect.h" #include "effects/GrSimpleTextureEffect.h" -const GrFragmentProcessor* SkImageShader::asFragmentProcessor(GrContext* context, - const SkMatrix& viewM, - const SkMatrix* localMatrix, - SkFilterQuality filterQuality) const { +const GrFragmentProcessor* SkImageShader::asFragmentProcessor( + GrContext* context, + const SkMatrix& viewM, + const SkMatrix* localMatrix, + SkFilterQuality filterQuality, + SkSourceGammaTreatment gammaTreatment) const { SkMatrix matrix; matrix.setIDiv(fImage->width(), fImage->height()); @@ -113,7 +115,7 @@ const GrFragmentProcessor* SkImageShader::asFragmentProcessor(GrContext* context GrTextureParams::FilterMode textureFilterMode = GrSkFilterQualityToGrFilterMode(filterQuality, viewM, this->getLocalMatrix(), &doBicubic); GrTextureParams params(tm, textureFilterMode); - SkAutoTUnref texture(as_IB(fImage)->asTextureRef(context, params)); + SkAutoTUnref texture(as_IB(fImage)->asTextureRef(context, params, gammaTreatment)); if (!texture) { return nullptr; } -- cgit v1.2.3