diff options
Diffstat (limited to 'src/effects/gradients/SkRadialGradient.cpp')
-rw-r--r-- | src/effects/gradients/SkRadialGradient.cpp | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/src/effects/gradients/SkRadialGradient.cpp b/src/effects/gradients/SkRadialGradient.cpp index 4766af604b..a20ea35a1a 100644 --- a/src/effects/gradients/SkRadialGradient.cpp +++ b/src/effects/gradients/SkRadialGradient.cpp @@ -567,19 +567,13 @@ void GrGLRadialGradient::emitCode(GrGLShaderBuilder* builder, bool SkRadialGradient::asNewEffect(GrContext* context, GrEffectStage* stage) const { SkASSERT(NULL != context && NULL != stage); - SkAutoTUnref<GrEffect> effect(SkNEW_ARGS(GrRadialGradient, (context, *this, fTileMode))); SkMatrix matrix; - if (this->getLocalMatrix(&matrix)) { - if (!matrix.invert(&matrix)) { - return false; - } - matrix.postConcat(fPtsToUnit); - stage->setEffect(effect, matrix); - } else { - stage->setEffect(effect, fPtsToUnit); + if (!this->getLocalMatrix().invert(&matrix)) { + return false; } - + matrix.postConcat(fPtsToUnit); + stage->setEffect(SkNEW_ARGS(GrRadialGradient, (context, *this, fTileMode)), matrix)->unref(); return true; } |