diff options
author | 2013-01-22 19:55:59 +0000 | |
---|---|---|
committer | 2013-01-22 19:55:59 +0000 | |
commit | 6340a41108633ac1ce5941e5cd30538630c4c55b (patch) | |
tree | c6f791722f09f6cf31207aea8093b1b06be3ae92 /src/effects/gradients | |
parent | ba3284e7bbb830749206414890f8152e421969f2 (diff) |
Let them eat GrEffectRef.
Changes the remaining existing code that operates on naked GrEffects to GrEffectRef.
Review URL: https://codereview.appspot.com/7124058
git-svn-id: http://skia.googlecode.com/svn/trunk@7321 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/effects/gradients')
-rw-r--r-- | src/effects/gradients/SkGradientShader.cpp | 8 | ||||
-rw-r--r-- | src/effects/gradients/SkGradientShaderPriv.h | 3 | ||||
-rw-r--r-- | src/effects/gradients/SkLinearGradient.cpp | 5 | ||||
-rw-r--r-- | src/effects/gradients/SkRadialGradient.cpp | 4 | ||||
-rw-r--r-- | src/effects/gradients/SkSweepGradient.cpp | 4 | ||||
-rw-r--r-- | src/effects/gradients/SkTwoPointConicalGradient.cpp | 20 | ||||
-rw-r--r-- | src/effects/gradients/SkTwoPointRadialGradient.cpp | 21 |
7 files changed, 29 insertions, 36 deletions
diff --git a/src/effects/gradients/SkGradientShader.cpp b/src/effects/gradients/SkGradientShader.cpp index 76450245ff..1880425c21 100644 --- a/src/effects/gradients/SkGradientShader.cpp +++ b/src/effects/gradients/SkGradientShader.cpp @@ -727,7 +727,7 @@ void GrGLGradientEffect::emitYCoordUniform(GrGLShaderBuilder* builder) { } void GrGLGradientEffect::setData(const GrGLUniformManager& uman, const GrEffectStage& stage) { - const GrGradientEffect& e = static_cast<const GrGradientEffect&>(*stage.getEffect()); + const GrGradientEffect& e = GetEffectFromStage<GrGradientEffect>(stage); const GrTexture* texture = e.texture(0); fEffectMatrix.setData(uman, e.getMatrix(), stage.getCoordChangeMatrix(), texture); @@ -739,7 +739,7 @@ void GrGLGradientEffect::setData(const GrGLUniformManager& uman, const GrEffectS } GrGLEffect::EffectKey GrGLGradientEffect::GenMatrixKey(const GrEffectStage& s) { - const GrGradientEffect& e = static_cast<const GrGradientEffect&>(*s.getEffect()); + const GrGradientEffect& e = GetEffectFromStage<GrGradientEffect>(s); const GrTexture* texture = e.texture(0); return GrGLEffectMatrix::GenKey(e.getMatrix(), s.getCoordChangeMatrix(), texture); } @@ -829,8 +829,8 @@ GrGradientEffect::~GrGradientEffect() { } } -bool GrGradientEffect::onIsEqual(const GrEffect& effect) const { - const GrGradientEffect& s = static_cast<const GrGradientEffect&>(effect); +bool GrGradientEffect::onIsEqual(const GrEffectRef& effect) const { + const GrGradientEffect& s = CastEffect<GrGradientEffect>(effect); return fTextureAccess.getTexture() == s.fTextureAccess.getTexture() && fTextureAccess.getParams().getTileModeX() == s.fTextureAccess.getParams().getTileModeX() && diff --git a/src/effects/gradients/SkGradientShaderPriv.h b/src/effects/gradients/SkGradientShaderPriv.h index 18289051b6..a34e4ab9bb 100644 --- a/src/effects/gradients/SkGradientShaderPriv.h +++ b/src/effects/gradients/SkGradientShaderPriv.h @@ -255,7 +255,7 @@ protected: SkScalar** stops, SkShader::TileMode* tm); - virtual bool onIsEqual(const GrEffect& effect) const SK_OVERRIDE; + virtual bool onIsEqual(const GrEffectRef& effect) const SK_OVERRIDE; private: @@ -335,4 +335,3 @@ private: #endif #endif - diff --git a/src/effects/gradients/SkLinearGradient.cpp b/src/effects/gradients/SkLinearGradient.cpp index 6bb0329dd1..1848571386 100644 --- a/src/effects/gradients/SkLinearGradient.cpp +++ b/src/effects/gradients/SkLinearGradient.cpp @@ -456,8 +456,7 @@ void SkLinearGradient::shadeSpan16(int x, int y, class GrGLLinearGradient : public GrGLGradientEffect { public: - GrGLLinearGradient(const GrBackendEffectFactory& factory, - const GrEffect&) + GrGLLinearGradient(const GrBackendEffectFactory& factory, const GrEffectRef&) : INHERITED (factory) { } virtual ~GrGLLinearGradient() { } @@ -488,7 +487,7 @@ public: const SkLinearGradient& shader, const SkMatrix& matrix, SkShader::TileMode tm) { - SkAutoTUnref<GrEffect> effect(SkNEW_ARGS(GrLinearGradient, (ctx, shader, matrix, tm))); + AutoEffectUnref effect(SkNEW_ARGS(GrLinearGradient, (ctx, shader, matrix, tm))); return CreateEffectRef(effect); } diff --git a/src/effects/gradients/SkRadialGradient.cpp b/src/effects/gradients/SkRadialGradient.cpp index c380ec1730..3062105ee3 100644 --- a/src/effects/gradients/SkRadialGradient.cpp +++ b/src/effects/gradients/SkRadialGradient.cpp @@ -479,7 +479,7 @@ class GrGLRadialGradient : public GrGLGradientEffect { public: GrGLRadialGradient(const GrBackendEffectFactory& factory, - const GrEffect&) : INHERITED (factory) { } + const GrEffectRef&) : INHERITED (factory) { } virtual ~GrGLRadialGradient() { } virtual void emitCode(GrGLShaderBuilder*, @@ -508,7 +508,7 @@ public: const SkRadialGradient& shader, const SkMatrix& matrix, SkShader::TileMode tm) { - SkAutoTUnref<GrEffect> effect(SkNEW_ARGS(GrRadialGradient, (ctx, shader, matrix, tm))); + AutoEffectUnref effect(SkNEW_ARGS(GrRadialGradient, (ctx, shader, matrix, tm))); return CreateEffectRef(effect); } diff --git a/src/effects/gradients/SkSweepGradient.cpp b/src/effects/gradients/SkSweepGradient.cpp index 3a1a599ec0..3cdac8577b 100644 --- a/src/effects/gradients/SkSweepGradient.cpp +++ b/src/effects/gradients/SkSweepGradient.cpp @@ -388,7 +388,7 @@ class GrGLSweepGradient : public GrGLGradientEffect { public: GrGLSweepGradient(const GrBackendEffectFactory& factory, - const GrEffect&) : INHERITED (factory) { } + const GrEffectRef&) : INHERITED (factory) { } virtual ~GrGLSweepGradient() { } virtual void emitCode(GrGLShaderBuilder*, @@ -416,7 +416,7 @@ public: static GrEffectRef* Create(GrContext* ctx, const SkSweepGradient& shader, const SkMatrix& matrix) { - SkAutoTUnref<GrEffect> effect(SkNEW_ARGS(GrSweepGradient, (ctx, shader, matrix))); + AutoEffectUnref effect(SkNEW_ARGS(GrSweepGradient, (ctx, shader, matrix))); return CreateEffectRef(effect); } virtual ~GrSweepGradient() { } diff --git a/src/effects/gradients/SkTwoPointConicalGradient.cpp b/src/effects/gradients/SkTwoPointConicalGradient.cpp index 23b976a8f8..bef29c0437 100644 --- a/src/effects/gradients/SkTwoPointConicalGradient.cpp +++ b/src/effects/gradients/SkTwoPointConicalGradient.cpp @@ -325,7 +325,7 @@ class GrGLConical2Gradient : public GrGLGradientEffect { public: GrGLConical2Gradient(const GrBackendEffectFactory& factory, - const GrEffect&); + const GrEffectRef&); virtual ~GrGLConical2Gradient() { } virtual void emitCode(GrGLShaderBuilder*, @@ -373,7 +373,7 @@ public: const SkTwoPointConicalGradient& shader, const SkMatrix& matrix, SkShader::TileMode tm) { - SkAutoTUnref<GrEffect> effect(SkNEW_ARGS(GrConical2Gradient, (ctx, shader, matrix, tm))); + AutoEffectUnref effect(SkNEW_ARGS(GrConical2Gradient, (ctx, shader, matrix, tm))); return CreateEffectRef(effect); } @@ -393,8 +393,8 @@ public: typedef GrGLConical2Gradient GLEffect; private: - virtual bool onIsEqual(const GrEffect& sBase) const SK_OVERRIDE { - const GrConical2Gradient& s = static_cast<const GrConical2Gradient&>(sBase); + virtual bool onIsEqual(const GrEffectRef& sBase) const SK_OVERRIDE { + const GrConical2Gradient& s = CastEffect<GrConical2Gradient>(sBase); return (INHERITED::onIsEqual(sBase) && this->fCenterX1 == s.fCenterX1 && this->fRadius0 == s.fRadius0 && @@ -456,9 +456,8 @@ GrEffectRef* GrConical2Gradient::TestCreate(SkRandom* random, ///////////////////////////////////////////////////////////////////// -GrGLConical2Gradient::GrGLConical2Gradient( - const GrBackendEffectFactory& factory, - const GrEffect& baseData) +GrGLConical2Gradient::GrGLConical2Gradient(const GrBackendEffectFactory& factory, + const GrEffectRef& baseData) : INHERITED(factory) , fVSParamUni(kInvalidUniformHandle) , fFSParamUni(kInvalidUniformHandle) @@ -468,8 +467,7 @@ GrGLConical2Gradient::GrGLConical2Gradient( , fCachedRadius(-SK_ScalarMax) , fCachedDiffRadius(-SK_ScalarMax) { - const GrConical2Gradient& data = - static_cast<const GrConical2Gradient&>(baseData); + const GrConical2Gradient& data = CastEffect<GrConical2Gradient>(baseData); fIsDegenerate = data.isDegenerate(); } @@ -645,7 +643,7 @@ void GrGLConical2Gradient::emitCode(GrGLShaderBuilder* builder, void GrGLConical2Gradient::setData(const GrGLUniformManager& uman, const GrEffectStage& stage) { INHERITED::setData(uman, stage); - const GrConical2Gradient& data = static_cast<const GrConical2Gradient&>(*stage.getEffect()); + const GrConical2Gradient& data = GetEffectFromStage<GrConical2Gradient>(stage); GrAssert(data.isDegenerate() == fIsDegenerate); SkScalar centerX1 = data.center(); SkScalar radius0 = data.radius(); @@ -685,7 +683,7 @@ GrGLEffect::EffectKey GrGLConical2Gradient::GenKey(const GrEffectStage& s, const }; EffectKey key = GenMatrixKey(s); - if (static_cast<const GrConical2Gradient&>(*s.getEffect()).isDegenerate()) { + if (GetEffectFromStage<GrConical2Gradient>(s).isDegenerate()) { key |= kIsDegenerate; } return key; diff --git a/src/effects/gradients/SkTwoPointRadialGradient.cpp b/src/effects/gradients/SkTwoPointRadialGradient.cpp index fb5c69ea17..b1c13037fb 100644 --- a/src/effects/gradients/SkTwoPointRadialGradient.cpp +++ b/src/effects/gradients/SkTwoPointRadialGradient.cpp @@ -384,8 +384,7 @@ class GrGLRadial2Gradient : public GrGLGradientEffect { public: - GrGLRadial2Gradient(const GrBackendEffectFactory& factory, - const GrEffect&); + GrGLRadial2Gradient(const GrBackendEffectFactory& factory, const GrEffectRef&); virtual ~GrGLRadial2Gradient() { } virtual void emitCode(GrGLShaderBuilder*, @@ -432,7 +431,7 @@ public: const SkTwoPointRadialGradient& shader, const SkMatrix& matrix, SkShader::TileMode tm) { - SkAutoTUnref<GrEffect> effect(SkNEW_ARGS(GrRadial2Gradient, (ctx, shader, matrix, tm))); + AutoEffectUnref effect(SkNEW_ARGS(GrRadial2Gradient, (ctx, shader, matrix, tm))); return CreateEffectRef(effect); } @@ -452,8 +451,8 @@ public: typedef GrGLRadial2Gradient GLEffect; private: - virtual bool onIsEqual(const GrEffect& sBase) const SK_OVERRIDE { - const GrRadial2Gradient& s = static_cast<const GrRadial2Gradient&>(sBase); + virtual bool onIsEqual(const GrEffectRef& sBase) const SK_OVERRIDE { + const GrRadial2Gradient& s = CastEffect<GrRadial2Gradient>(sBase); return (INHERITED::onIsEqual(sBase) && this->fCenterX1 == s.fCenterX1 && this->fRadius0 == s.fRadius0 && @@ -516,9 +515,8 @@ GrEffectRef* GrRadial2Gradient::TestCreate(SkRandom* random, ///////////////////////////////////////////////////////////////////// -GrGLRadial2Gradient::GrGLRadial2Gradient( - const GrBackendEffectFactory& factory, - const GrEffect& baseData) +GrGLRadial2Gradient::GrGLRadial2Gradient(const GrBackendEffectFactory& factory, + const GrEffectRef& baseData) : INHERITED(factory) , fVSParamUni(kInvalidUniformHandle) , fFSParamUni(kInvalidUniformHandle) @@ -528,8 +526,7 @@ GrGLRadial2Gradient::GrGLRadial2Gradient( , fCachedRadius(-SK_ScalarMax) , fCachedPosRoot(0) { - const GrRadial2Gradient& data = - static_cast<const GrRadial2Gradient&>(baseData); + const GrRadial2Gradient& data = CastEffect<GrRadial2Gradient>(baseData); fIsDegenerate = data.isDegenerate(); } @@ -646,7 +643,7 @@ void GrGLRadial2Gradient::emitCode(GrGLShaderBuilder* builder, void GrGLRadial2Gradient::setData(const GrGLUniformManager& uman, const GrEffectStage& stage) { INHERITED::setData(uman, stage); - const GrRadial2Gradient& data = static_cast<const GrRadial2Gradient&>(*stage.getEffect()); + const GrRadial2Gradient& data = GetEffectFromStage<GrRadial2Gradient>(stage); GrAssert(data.isDegenerate() == fIsDegenerate); SkScalar centerX1 = data.center(); SkScalar radius0 = data.radius(); @@ -684,7 +681,7 @@ GrGLEffect::EffectKey GrGLRadial2Gradient::GenKey(const GrEffectStage& s, const }; EffectKey key = GenMatrixKey(s); - if (static_cast<const GrRadial2Gradient&>(*s.getEffect()).isDegenerate()) { + if (GetEffectFromStage<GrRadial2Gradient>(s).isDegenerate()) { key |= kIsDegenerate; } return key; |