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(GrTexture* texture, float xOffset, float yOffset, float xInvZoom, float yInvZoom, float xInvInset, float yInvInset) { AutoEffectUnref effect(SkNEW_ARGS(GrMagnifierEffect, (texture, xOffset, yOffset, xInvZoom, yInvZoom, xInvInset, yInvInset))); return CreateEffectRef(effect); }
static GrEffectRef* Create(GrTexture* texture, const SkISize& kernelSize, const SkScalar* kernel, SkScalar gain, SkScalar bias, const SkIPoint& target, TileMode tileMode, bool convolveAlpha) { AutoEffectUnref effect(SkNEW_ARGS(GrMatrixConvolutionEffect, (texture, kernelSize, kernel, gain, bias, target, tileMode, convolveAlpha))); return CreateEffectRef(effect); }
static GrEffectRef* Create(const SkRect& rect) { return CreateEffectRef(AutoEffectUnref(SkNEW_ARGS(AARectEffect, (rect)))); }
static GrEffectRef* Create(GrTexture* tex, Direction dir, int radius, MorphologyType type) { AutoEffectUnref effect(SkNEW_ARGS(GrMorphologyEffect, (tex, dir, radius, type))); return CreateEffectRef(effect); }
static GrEffectRef* Create(GrTexture* tex, const SkScalar coefficients[16]) { AutoEffectUnref effect(SkNEW_ARGS(GrBicubicEffect, (tex, coefficients))); return CreateEffectRef(effect); }
static GrEffectRef* Create() { return CreateEffectRef(AutoEffectUnref(SkNEW(DitherEffect))); }
static GrEffectRef* Create(EdgeType edgeType, const SkRect& rect) { return CreateEffectRef(AutoEffectUnref(SkNEW_ARGS(AARectEffect, (edgeType, rect)))); }