diff options
Diffstat (limited to 'src/effects/gradients/SkTwoPointConicalGradient.cpp')
-rw-r--r-- | src/effects/gradients/SkTwoPointConicalGradient.cpp | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/src/effects/gradients/SkTwoPointConicalGradient.cpp b/src/effects/gradients/SkTwoPointConicalGradient.cpp index 0b6e30de39..04cf1ebfe5 100644 --- a/src/effects/gradients/SkTwoPointConicalGradient.cpp +++ b/src/effects/gradients/SkTwoPointConicalGradient.cpp @@ -343,18 +343,20 @@ static const UniformHandle kInvalidUniformHandle = GrGLUniformManager::kInvalidU class GrGLConical2Gradient : public GrGLGradientEffect { public: - GrGLConical2Gradient(const GrBackendEffectFactory& factory, const GrDrawEffect&); + GrGLConical2Gradient(const GrBackendEffectFactory& factory, + const GrEffectRef&); virtual ~GrGLConical2Gradient() { } virtual void emitCode(GrGLShaderBuilder*, - const GrDrawEffect&, + const GrEffectStage&, EffectKey, + const char* vertexCoords, const char* outputColor, const char* inputColor, const TextureSamplerArray&) SK_OVERRIDE; - virtual void setData(const GrGLUniformManager&, const GrDrawEffect&) SK_OVERRIDE; + virtual void setData(const GrGLUniformManager&, const GrEffectStage&) SK_OVERRIDE; - static EffectKey GenKey(const GrDrawEffect&, const GrGLCaps& caps); + static EffectKey GenKey(const GrEffectStage&, const GrGLCaps& caps); protected: @@ -474,7 +476,7 @@ GrEffectRef* GrConical2Gradient::TestCreate(SkMWCRandom* random, ///////////////////////////////////////////////////////////////////// GrGLConical2Gradient::GrGLConical2Gradient(const GrBackendEffectFactory& factory, - const GrDrawEffect& drawEffect) + const GrEffectRef& baseData) : INHERITED(factory) , fVSParamUni(kInvalidUniformHandle) , fFSParamUni(kInvalidUniformHandle) @@ -484,20 +486,21 @@ GrGLConical2Gradient::GrGLConical2Gradient(const GrBackendEffectFactory& factory , fCachedRadius(-SK_ScalarMax) , fCachedDiffRadius(-SK_ScalarMax) { - const GrConical2Gradient& data = drawEffect.castEffect<GrConical2Gradient>(); + const GrConical2Gradient& data = CastEffect<GrConical2Gradient>(baseData); fIsDegenerate = data.isDegenerate(); } void GrGLConical2Gradient::emitCode(GrGLShaderBuilder* builder, - const GrDrawEffect&, + const GrEffectStage&, EffectKey key, + const char* vertexCoords, const char* outputColor, const char* inputColor, const TextureSamplerArray& samplers) { const char* fsCoords; const char* vsCoordsVarying; GrSLType coordsVaryingType; - this->setupMatrix(builder, key, &fsCoords, &vsCoordsVarying, &coordsVaryingType); + this->setupMatrix(builder, key, vertexCoords, &fsCoords, &vsCoordsVarying, &coordsVaryingType); this->emitYCoordUniform(builder); // 2 copies of uniform array, 1 for each of vertex & fragment shader, @@ -655,10 +658,9 @@ void GrGLConical2Gradient::emitCode(GrGLShaderBuilder* builder, } } -void GrGLConical2Gradient::setData(const GrGLUniformManager& uman, - const GrDrawEffect& drawEffect) { - INHERITED::setData(uman, drawEffect); - const GrConical2Gradient& data = drawEffect.castEffect<GrConical2Gradient>(); +void GrGLConical2Gradient::setData(const GrGLUniformManager& uman, const GrEffectStage& stage) { + INHERITED::setData(uman, stage); + const GrConical2Gradient& data = GetEffectFromStage<GrConical2Gradient>(stage); GrAssert(data.isDegenerate() == fIsDegenerate); SkScalar centerX1 = data.center(); SkScalar radius0 = data.radius(); @@ -692,14 +694,13 @@ void GrGLConical2Gradient::setData(const GrGLUniformManager& uman, } } -GrGLEffect::EffectKey GrGLConical2Gradient::GenKey(const GrDrawEffect& drawEffect, - const GrGLCaps&) { +GrGLEffect::EffectKey GrGLConical2Gradient::GenKey(const GrEffectStage& s, const GrGLCaps&) { enum { kIsDegenerate = 1 << kMatrixKeyBitCnt, }; - EffectKey key = GenMatrixKey(drawEffect); - if (drawEffect.castEffect<GrConical2Gradient>().isDegenerate()) { + EffectKey key = GenMatrixKey(s); + if (GetEffectFromStage<GrConical2Gradient>(s).isDegenerate()) { key |= kIsDegenerate; } return key; |