diff options
Diffstat (limited to 'src/gpu/effects/GrCircleEdgeEffect.cpp')
-rw-r--r-- | src/gpu/effects/GrCircleEdgeEffect.cpp | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/gpu/effects/GrCircleEdgeEffect.cpp b/src/gpu/effects/GrCircleEdgeEffect.cpp index ba7350226b..4ecdedbcde 100644 --- a/src/gpu/effects/GrCircleEdgeEffect.cpp +++ b/src/gpu/effects/GrCircleEdgeEffect.cpp @@ -17,29 +17,27 @@ class GrGLCircleEdgeEffect : public GrGLEffect { public: - GrGLCircleEdgeEffect(const GrBackendEffectFactory& factory, const GrEffectRef&) + GrGLCircleEdgeEffect(const GrBackendEffectFactory& factory, const GrDrawEffect&) : INHERITED (factory) {} virtual void emitCode(GrGLShaderBuilder* builder, - const GrEffectStage& stage, + const GrDrawEffect& drawEffect, EffectKey key, - const char* vertexCoords, const char* outputColor, const char* inputColor, const TextureSamplerArray& samplers) SK_OVERRIDE { - const GrCircleEdgeEffect& effect = GetEffectFromStage<GrCircleEdgeEffect>(stage); - + const GrCircleEdgeEffect& circleEffect = drawEffect.castEffect<GrCircleEdgeEffect>(); const char *vsName, *fsName; builder->addVarying(kVec4f_GrSLType, "CircleEdge", &vsName, &fsName); const SkString* attrName = - builder->getEffectAttributeName(stage.getVertexAttribIndices()[0]); + builder->getEffectAttributeName(drawEffect.getVertexAttribIndices()[0]); builder->vsCodeAppendf("\t%s = %s;\n", vsName, attrName->c_str()); builder->fsCodeAppendf("\tfloat d = distance(%s.xy, %s.xy);\n", builder->fragmentPosition(), fsName); builder->fsCodeAppendf("\tfloat edgeAlpha = clamp(%s.z - d, 0.0, 1.0);\n", fsName); - if (effect.isStroked()) { + if (circleEffect.isStroked()) { builder->fsCodeAppendf("\tfloat innerAlpha = clamp(d - %s.w, 0.0, 1.0);\n", fsName); builder->fsCodeAppend("\tedgeAlpha *= innerAlpha;\n"); } @@ -48,13 +46,13 @@ public: builder->fsCodeAppendf("\t%s = %s;\n", outputColor, modulate.c_str()); } - static inline EffectKey GenKey(const GrEffectStage& stage, const GrGLCaps&) { - const GrCircleEdgeEffect& effect = GetEffectFromStage<GrCircleEdgeEffect>(stage); + static inline EffectKey GenKey(const GrDrawEffect& drawEffect, const GrGLCaps&) { + const GrCircleEdgeEffect& circleEffect = drawEffect.castEffect<GrCircleEdgeEffect>(); - return effect.isStroked() ? 0x1 : 0x0; + return circleEffect.isStroked() ? 0x1 : 0x0; } - virtual void setData(const GrGLUniformManager& uman, const GrEffectStage& stage) SK_OVERRIDE { + virtual void setData(const GrGLUniformManager&, const GrDrawEffect&) SK_OVERRIDE { } private: |