Revert r5962 because of failures.
git-svn-id: http://skia.googlecode.com/svn/trunk@5963 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/effects/gradients/SkRadialGradient.cpp b/src/effects/gradients/SkRadialGradient.cpp
index 0156acd..512eafb 100644
--- a/src/effects/gradients/SkRadialGradient.cpp
+++ b/src/effects/gradients/SkRadialGradient.cpp
@@ -538,11 +538,9 @@
colors, stops, colorCount,
tm));
GrSamplerState sampler;
- shader->asNewCustomStage(context, &sampler);
- GrAssert(NULL != sampler.getCustomStage());
- // const_cast and ref is a hack! Will remove when asNewCustomStage returns GrCustomStage*
- sampler.getCustomStage()->ref();
- return const_cast<GrCustomStage*>(sampler.getCustomStage());
+ GrCustomStage* stage = shader->asNewCustomStage(context, &sampler);
+ GrAssert(NULL != stage);
+ return stage;
}
/////////////////////////////////////////////////////////////////////
@@ -558,29 +556,19 @@
/////////////////////////////////////////////////////////////////////
-bool SkRadialGradient::asNewCustomStage(GrContext* context, GrSamplerState* sampler) const {
+GrCustomStage* SkRadialGradient::asNewCustomStage(GrContext* context,
+ GrSamplerState* sampler) const {
SkASSERT(NULL != context && NULL != sampler);
- SkAutoTUnref<GrCustomStage> stage(SkNEW_ARGS(GrRadialGradient, (context, *this, fTileMode)));
-
- SkMatrix matrix;
- if (this->getLocalMatrix(&matrix)) {
- if (!matrix.invert(&matrix)) {
- return false;
- }
- matrix.postConcat(fPtsToUnit);
- sampler->setCustomStage(stage, matrix);
- } else {
- sampler->setCustomStage(stage, fPtsToUnit);
- }
-
- return true;
+ sampler->matrix()->preConcat(fPtsToUnit);
+ return SkNEW_ARGS(GrRadialGradient, (context, *this, fTileMode));
}
#else
-bool SkRadialGradient::asNewCustomStage(GrContext*, GrSamplerState*) const {
+GrCustomStage* SkRadialGradient::asNewCustomStage(GrContext* context,
+ GrSamplerState* sampler) const {
SkDEBUGFAIL("Should not call in GPU-less build");
- return false;
+ return NULL;
}
#endif