Index: src/gpu/GrContext.cpp |
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp |
index 39d0db33b444792a8216cd00ce74d4eded79769a..0f155b25e64aa73dbd70a38e8e8fda6dd91d0f4a 100644 |
--- a/src/gpu/GrContext.cpp |
+++ b/src/gpu/GrContext.cpp |
@@ -1764,20 +1764,16 @@ GrTexture* GrContext::gaussianBlur(GrTexture* srcTexture, |
return NULL; |
} |
- GrPaint paint; |
- paint.reset(); |
- |
for (int i = 1; i < scaleFactorX || i < scaleFactorY; i *= 2) { |
+ GrPaint paint; |
SkMatrix matrix; |
matrix.setIDiv(srcTexture->width(), srcTexture->height()); |
this->setRenderTarget(dstTexture->asRenderTarget()); |
SkRect dstRect(srcRect); |
scale_rect(&dstRect, i < scaleFactorX ? 0.5f : 1.0f, |
i < scaleFactorY ? 0.5f : 1.0f); |
- |
- paint.colorStage(0)->setEffect(GrSimpleTextureEffect::Create(srcTexture, |
- matrix, |
- true))->unref(); |
+ GrTextureParams params(SkShader::kClamp_TileMode, true); |
+ paint.addColorTextureEffect(srcTexture, matrix, params); |
this->drawRectToRect(paint, dstRect, srcRect); |
srcRect = dstRect; |
srcTexture = dstTexture; |
@@ -1795,7 +1791,7 @@ GrTexture* GrContext::gaussianBlur(GrTexture* srcTexture, |
radiusX, srcIRect.height()); |
this->clear(&clearRect, 0x0); |
} |
- |
+ GrPaint paint; |
this->setRenderTarget(dstTexture->asRenderTarget()); |
AutoRestoreEffects are; |
GrDrawTarget* target = this->prepareToDraw(&paint, BUFFERED_DRAW, &are); |
@@ -1815,6 +1811,7 @@ GrTexture* GrContext::gaussianBlur(GrTexture* srcTexture, |
} |
this->setRenderTarget(dstTexture->asRenderTarget()); |
+ GrPaint paint; |
AutoRestoreEffects are; |
GrDrawTarget* target = this->prepareToDraw(&paint, BUFFERED_DRAW, &are); |
convolve_gaussian(target, srcTexture, srcRect, sigmaY, radiusY, |
@@ -1833,12 +1830,14 @@ GrTexture* GrContext::gaussianBlur(GrTexture* srcTexture, |
1, srcIRect.height()); |
this->clear(&clearRect, 0x0); |
SkMatrix matrix; |
- // FIXME: This should be mitchell, not bilinear. |
matrix.setIDiv(srcTexture->width(), srcTexture->height()); |
this->setRenderTarget(dstTexture->asRenderTarget()); |
- paint.colorStage(0)->setEffect(GrSimpleTextureEffect::Create(srcTexture, |
- matrix, |
- true))->unref(); |
+ |
+ GrPaint paint; |
+ // FIXME: This should be mitchell, not bilinear. |
+ GrTextureParams params(SkShader::kClamp_TileMode, true); |
+ paint.addColorTextureEffect(srcTexture, matrix, params); |
+ |
SkRect dstRect(srcRect); |
scale_rect(&dstRect, (float) scaleFactorX, (float) scaleFactorY); |
this->drawRectToRect(paint, dstRect, srcRect); |