| Index: src/effects/gradients/SkTwoPointConicalGradient.cpp
|
| ===================================================================
|
| --- src/effects/gradients/SkTwoPointConicalGradient.cpp (revision 8241)
|
| +++ src/effects/gradients/SkTwoPointConicalGradient.cpp (working copy)
|
| @@ -336,20 +336,18 @@
|
| class GrGLConical2Gradient : public GrGLGradientEffect {
|
| public:
|
|
|
| - GrGLConical2Gradient(const GrBackendEffectFactory& factory,
|
| - const GrEffectRef&);
|
| + GrGLConical2Gradient(const GrBackendEffectFactory& factory, const GrDrawEffect&);
|
| virtual ~GrGLConical2Gradient() { }
|
|
|
| virtual void emitCode(GrGLShaderBuilder*,
|
| - const GrEffectStage&,
|
| + const GrDrawEffect&,
|
| EffectKey,
|
| - const char* vertexCoords,
|
| const char* outputColor,
|
| const char* inputColor,
|
| const TextureSamplerArray&) SK_OVERRIDE;
|
| - virtual void setData(const GrGLUniformManager&, const GrEffectStage&) SK_OVERRIDE;
|
| + virtual void setData(const GrGLUniformManager&, const GrDrawEffect&) SK_OVERRIDE;
|
|
|
| - static EffectKey GenKey(const GrEffectStage&, const GrGLCaps& caps);
|
| + static EffectKey GenKey(const GrDrawEffect&, const GrGLCaps& caps);
|
|
|
| protected:
|
|
|
| @@ -469,7 +467,7 @@
|
| /////////////////////////////////////////////////////////////////////
|
|
|
| GrGLConical2Gradient::GrGLConical2Gradient(const GrBackendEffectFactory& factory,
|
| - const GrEffectRef& baseData)
|
| + const GrDrawEffect& drawEffect)
|
| : INHERITED(factory)
|
| , fVSParamUni(kInvalidUniformHandle)
|
| , fFSParamUni(kInvalidUniformHandle)
|
| @@ -479,21 +477,20 @@
|
| , fCachedRadius(-SK_ScalarMax)
|
| , fCachedDiffRadius(-SK_ScalarMax) {
|
|
|
| - const GrConical2Gradient& data = CastEffect<GrConical2Gradient>(baseData);
|
| + const GrConical2Gradient& data = drawEffect.castEffect<GrConical2Gradient>();
|
| fIsDegenerate = data.isDegenerate();
|
| }
|
|
|
| void GrGLConical2Gradient::emitCode(GrGLShaderBuilder* builder,
|
| - const GrEffectStage&,
|
| + const GrDrawEffect&,
|
| 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, vertexCoords, &fsCoords, &vsCoordsVarying, &coordsVaryingType);
|
| + this->setupMatrix(builder, key, &fsCoords, &vsCoordsVarying, &coordsVaryingType);
|
|
|
| this->emitYCoordUniform(builder);
|
| // 2 copies of uniform array, 1 for each of vertex & fragment shader,
|
| @@ -651,9 +648,10 @@
|
| }
|
| }
|
|
|
| -void GrGLConical2Gradient::setData(const GrGLUniformManager& uman, const GrEffectStage& stage) {
|
| - INHERITED::setData(uman, stage);
|
| - const GrConical2Gradient& data = GetEffectFromStage<GrConical2Gradient>(stage);
|
| +void GrGLConical2Gradient::setData(const GrGLUniformManager& uman,
|
| + const GrDrawEffect& drawEffect) {
|
| + INHERITED::setData(uman, drawEffect);
|
| + const GrConical2Gradient& data = drawEffect.castEffect<GrConical2Gradient>();
|
| GrAssert(data.isDegenerate() == fIsDegenerate);
|
| SkScalar centerX1 = data.center();
|
| SkScalar radius0 = data.radius();
|
| @@ -687,13 +685,14 @@
|
| }
|
| }
|
|
|
| -GrGLEffect::EffectKey GrGLConical2Gradient::GenKey(const GrEffectStage& s, const GrGLCaps&) {
|
| +GrGLEffect::EffectKey GrGLConical2Gradient::GenKey(const GrDrawEffect& drawEffect,
|
| + const GrGLCaps&) {
|
| enum {
|
| kIsDegenerate = 1 << kMatrixKeyBitCnt,
|
| };
|
|
|
| - EffectKey key = GenMatrixKey(s);
|
| - if (GetEffectFromStage<GrConical2Gradient>(s).isDegenerate()) {
|
| + EffectKey key = GenMatrixKey(drawEffect);
|
| + if (drawEffect.castEffect<GrConical2Gradient>().isDegenerate()) {
|
| key |= kIsDegenerate;
|
| }
|
| return key;
|
|
|