static GrEffectRef* Create(bool stroke) { // we go through this so we only have one copy of each effect (stroked/filled) static SkAutoTUnref<GrEffectRef> gCircleStrokeEdgeEffectRef( CreateEffectRef(AutoEffectUnref(SkNEW_ARGS(CircleEdgeEffect, (true))))); static SkAutoTUnref<GrEffectRef> gCircleFillEdgeEffectRef( CreateEffectRef(AutoEffectUnref(SkNEW_ARGS(CircleEdgeEffect, (false))))); if (stroke) { gCircleStrokeEdgeEffectRef.get()->ref(); return gCircleStrokeEdgeEffectRef; } else { gCircleFillEdgeEffectRef.get()->ref(); return gCircleFillEdgeEffectRef; } }
static GrEffectRef* Create() { // we go through this so we only have one copy of each effect static GrEffectRef* gHairQuadEdgeEffectRef = CreateEffectRef(AutoEffectUnref(SkNEW(HairQuadEdgeEffect))); static SkAutoTUnref<GrEffectRef> gUnref(gHairQuadEdgeEffectRef); gHairQuadEdgeEffectRef->ref(); return gHairQuadEdgeEffectRef; }
static GrEffectRef* Create(const SkRect& rect) { return CreateEffectRef(AutoEffectUnref(SkNEW_ARGS(AARectEffect, (rect)))); }
static GrEffectRef* Create() { return CreateEffectRef(AutoEffectUnref(SkNEW(DitherEffect))); }
static GrEffectRef* Create(EdgeType edgeType, const SkRect& rect) { return CreateEffectRef(AutoEffectUnref(SkNEW_ARGS(AARectEffect, (edgeType, rect)))); }