Index: src/gpu/SkGpuDevice_drawTexture.cpp |
diff --git a/src/gpu/SkGpuDevice_drawTexture.cpp b/src/gpu/SkGpuDevice_drawTexture.cpp |
index 5eecf43e8338b6058d52edfa57b79b0268f635b8..4ba3c8df9c9235d672819be386c26b09398a4e98 100644 |
--- a/src/gpu/SkGpuDevice_drawTexture.cpp |
+++ b/src/gpu/SkGpuDevice_drawTexture.cpp |
@@ -201,15 +201,19 @@ void SkGpuDevice::drawTextureProducerImpl(GrTextureProducer* producer, |
} |
textureMatrix = &tempMatrix; |
} |
+ bool gammaCorrect = this->surfaceProps().isGammaCorrect(); |
+ SkSourceGammaTreatment gammaTreatment = gammaCorrect |
+ ? SkSourceGammaTreatment::kRespect : SkSourceGammaTreatment::kIgnore; |
SkAutoTUnref<const GrFragmentProcessor> fp(producer->createFragmentProcessor( |
- *textureMatrix, clippedSrcRect, constraintMode, coordsAllInsideSrcRect, filterMode)); |
+ *textureMatrix, clippedSrcRect, constraintMode, coordsAllInsideSrcRect, filterMode, |
+ gammaTreatment)); |
if (!fp) { |
return; |
} |
GrPaint grPaint; |
if (!SkPaintToGrPaintWithTexture(fContext, paint, viewMatrix, fp, producer->isAlphaOnly(), |
- this->surfaceProps().isGammaCorrect(), &grPaint)) { |
+ gammaCorrect, &grPaint)) { |
return; |
} |