diff options
Diffstat (limited to 'src/core/SkComposeShader.cpp')
-rw-r--r-- | src/core/SkComposeShader.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/core/SkComposeShader.cpp b/src/core/SkComposeShader.cpp index 46b7724944..13569f1b48 100644 --- a/src/core/SkComposeShader.cpp +++ b/src/core/SkComposeShader.cpp @@ -183,10 +183,12 @@ void SkComposeShader::ComposeShaderContext::shadeSpan(int x, int y, SkPMColor re ///////////////////////////////////////////////////////////////////// -const GrFragmentProcessor* SkComposeShader::asFragmentProcessor(GrContext* context, - const SkMatrix& viewM, - const SkMatrix* localMatrix, - SkFilterQuality fq) const { +const GrFragmentProcessor* SkComposeShader::asFragmentProcessor( + GrContext* context, + const SkMatrix& viewM, + const SkMatrix* localMatrix, + SkFilterQuality fq, + SkSourceGammaTreatment gammaTreatment) const { // Fragment processor will only support SkXfermode::Mode modes currently. SkXfermode::Mode mode; if (!(SkXfermode::AsMode(fMode, &mode))) { @@ -199,19 +201,19 @@ const GrFragmentProcessor* SkComposeShader::asFragmentProcessor(GrContext* conte GrConstColorProcessor::kIgnore_InputMode); break; case SkXfermode::kSrc_Mode: - return fShaderB->asFragmentProcessor(context, viewM, localMatrix, fq); + return fShaderB->asFragmentProcessor(context, viewM, localMatrix, fq, gammaTreatment); break; case SkXfermode::kDst_Mode: - return fShaderA->asFragmentProcessor(context, viewM, localMatrix, fq); + return fShaderA->asFragmentProcessor(context, viewM, localMatrix, fq, gammaTreatment); break; default: SkAutoTUnref<const GrFragmentProcessor> fpA(fShaderA->asFragmentProcessor(context, - viewM, localMatrix, fq)); + viewM, localMatrix, fq, gammaTreatment)); if (!fpA.get()) { return nullptr; } SkAutoTUnref<const GrFragmentProcessor> fpB(fShaderB->asFragmentProcessor(context, - viewM, localMatrix, fq)); + viewM, localMatrix, fq, gammaTreatment)); if (!fpB.get()) { return nullptr; } |