public:
static GrGeometryProcessor* Create() {
- GR_CREATE_STATIC_PROCESSOR(gQuadEdgeEffect, QuadEdgeEffect, ());
- gQuadEdgeEffect->ref();
- return gQuadEdgeEffect;
+ return SkNEW(QuadEdgeEffect);
}
virtual ~QuadEdgeEffect() {}
class DefaultGeoProc : public GrGeometryProcessor {
public:
static GrGeometryProcessor* Create(uint32_t gpTypeFlags) {
- switch (gpTypeFlags) {
- case Flag::kColor_GPType | Flag::kCoverage_GPType | Flag::kLocalCoord_GPType: {
- GR_CREATE_STATIC_PROCESSOR(gDefaultGeoProcColLocCov, DefaultGeoProc, (gpTypeFlags));
- return SkRef(gDefaultGeoProcColLocCov);
- }
- case Flag::kColor_GPType | Flag::kLocalCoord_GPType: {
- GR_CREATE_STATIC_PROCESSOR(gDefaultGeoProcColLoc, DefaultGeoProc, (gpTypeFlags));
- return SkRef(gDefaultGeoProcColLoc);
- }
- case Flag::kColor_GPType | Flag::kCoverage_GPType: {
- GR_CREATE_STATIC_PROCESSOR(gDefaultGeoProcColCov, DefaultGeoProc, (gpTypeFlags));
- return SkRef(gDefaultGeoProcColCov);
- }
- case Flag::kColor_GPType: {
- GR_CREATE_STATIC_PROCESSOR(gDefaultGeoProcCol, DefaultGeoProc, (gpTypeFlags));
- return SkRef(gDefaultGeoProcCol);
- }
- case Flag::kLocalCoord_GPType | Flag::kCoverage_GPType: {
- GR_CREATE_STATIC_PROCESSOR(gDefaultGeoProcLocCov, DefaultGeoProc, (gpTypeFlags));
- return SkRef(gDefaultGeoProcLocCov);
- }
- case Flag::kLocalCoord_GPType: {
- GR_CREATE_STATIC_PROCESSOR(gDefaultGeoProcLoc, DefaultGeoProc, (gpTypeFlags));
- return SkRef(gDefaultGeoProcLoc);
- }
- case Flag::kCoverage_GPType: {
- GR_CREATE_STATIC_PROCESSOR(gDefaultGeoProcCov, DefaultGeoProc, (gpTypeFlags));
- return SkRef(gDefaultGeoProcCov);
- }
- case Flag::kPosition_GPType: {
- GR_CREATE_STATIC_PROCESSOR(gDefaultGeoProc, DefaultGeoProc, (gpTypeFlags));
- return SkRef(gDefaultGeoProc);
- }
- default:
- SkFAIL("Incomplete Switch");
- return NULL;
- }
+ return SkNEW_ARGS(DefaultGeoProc, (gpTypeFlags));
}
virtual const char* name() const SK_OVERRIDE { return "DefaultGeometryProcessor"; }
class CircleEdgeEffect : public GrGeometryProcessor {
public:
static GrGeometryProcessor* Create(bool stroke) {
- GR_CREATE_STATIC_PROCESSOR(gCircleStrokeEdge, CircleEdgeEffect, (true));
- GR_CREATE_STATIC_PROCESSOR(gCircleFillEdge, CircleEdgeEffect, (false));
-
- if (stroke) {
- gCircleStrokeEdge->ref();
- return gCircleStrokeEdge;
- } else {
- gCircleFillEdge->ref();
- return gCircleFillEdge;
- }
+ return SkNEW_ARGS(CircleEdgeEffect, (stroke));
}
const GrAttribute* inPosition() const { return fInPosition; }
class EllipseEdgeEffect : public GrGeometryProcessor {
public:
static GrGeometryProcessor* Create(bool stroke) {
- GR_CREATE_STATIC_PROCESSOR(gEllipseStrokeEdge, EllipseEdgeEffect, (true));
- GR_CREATE_STATIC_PROCESSOR(gEllipseFillEdge, EllipseEdgeEffect, (false));
-
- if (stroke) {
- gEllipseStrokeEdge->ref();
- return gEllipseStrokeEdge;
- } else {
- gEllipseFillEdge->ref();
- return gEllipseFillEdge;
- }
+ return SkNEW_ARGS(EllipseEdgeEffect, (stroke));
}
virtual ~EllipseEdgeEffect() {}
enum Mode { kStroke = 0, kHairline, kFill };
static GrGeometryProcessor* Create(Mode mode) {
- GR_CREATE_STATIC_PROCESSOR(gEllipseStrokeEdge, DIEllipseEdgeEffect, (kStroke));
- GR_CREATE_STATIC_PROCESSOR(gEllipseHairlineEdge, DIEllipseEdgeEffect, (kHairline));
- GR_CREATE_STATIC_PROCESSOR(gEllipseFillEdge, DIEllipseEdgeEffect, (kFill));
-
- if (kStroke == mode) {
- gEllipseStrokeEdge->ref();
- return gEllipseStrokeEdge;
- } else if (kHairline == mode) {
- gEllipseHairlineEdge->ref();
- return gEllipseHairlineEdge;
- } else {
- gEllipseFillEdge->ref();
- return gEllipseFillEdge;
- }
+ return SkNEW_ARGS(DIEllipseEdgeEffect, (mode));
}
virtual ~DIEllipseEdgeEffect() {}
public:
static GrGeometryProcessor* Create(const GrPrimitiveEdgeType edgeType,
const GrDrawTargetCaps& caps) {
- GR_CREATE_STATIC_PROCESSOR(gConicFillAA, GrConicEffect, (kFillAA_GrProcessorEdgeType));
- GR_CREATE_STATIC_PROCESSOR(gConicHairAA, GrConicEffect, (kHairlineAA_GrProcessorEdgeType));
- GR_CREATE_STATIC_PROCESSOR(gConicFillBW, GrConicEffect, (kFillBW_GrProcessorEdgeType));
switch (edgeType) {
case kFillAA_GrProcessorEdgeType:
if (!caps.shaderDerivativeSupport()) {
return NULL;
}
- gConicFillAA->ref();
- return gConicFillAA;
+ return SkNEW_ARGS(GrConicEffect, (kFillAA_GrProcessorEdgeType));
case kHairlineAA_GrProcessorEdgeType:
if (!caps.shaderDerivativeSupport()) {
return NULL;
}
- gConicHairAA->ref();
- return gConicHairAA;
+ return SkNEW_ARGS(GrConicEffect, (kHairlineAA_GrProcessorEdgeType));
case kFillBW_GrProcessorEdgeType:
- gConicFillBW->ref();
- return gConicFillBW;
+ return SkNEW_ARGS(GrConicEffect, (kFillBW_GrProcessorEdgeType));;
default:
return NULL;
}
public:
static GrGeometryProcessor* Create(const GrPrimitiveEdgeType edgeType,
const GrDrawTargetCaps& caps) {
- GR_CREATE_STATIC_PROCESSOR(gQuadFillAA, GrQuadEffect, (kFillAA_GrProcessorEdgeType));
- GR_CREATE_STATIC_PROCESSOR(gQuadHairAA, GrQuadEffect, (kHairlineAA_GrProcessorEdgeType));
- GR_CREATE_STATIC_PROCESSOR(gQuadFillBW, GrQuadEffect, (kFillBW_GrProcessorEdgeType));
switch (edgeType) {
case kFillAA_GrProcessorEdgeType:
if (!caps.shaderDerivativeSupport()) {
return NULL;
}
- gQuadFillAA->ref();
- return gQuadFillAA;
+ return SkNEW_ARGS(GrQuadEffect, (kFillAA_GrProcessorEdgeType));
case kHairlineAA_GrProcessorEdgeType:
if (!caps.shaderDerivativeSupport()) {
return NULL;
}
- gQuadHairAA->ref();
- return gQuadHairAA;
+ return SkNEW_ARGS(GrQuadEffect, (kHairlineAA_GrProcessorEdgeType));
case kFillBW_GrProcessorEdgeType:
- gQuadFillBW->ref();
- return gQuadFillBW;
+ return SkNEW_ARGS(GrQuadEffect, (kFillBW_GrProcessorEdgeType));
default:
return NULL;
}
public:
static GrGeometryProcessor* Create(const GrPrimitiveEdgeType edgeType,
const GrDrawTargetCaps& caps) {
- GR_CREATE_STATIC_PROCESSOR(gCubicFillAA, GrCubicEffect, (kFillAA_GrProcessorEdgeType));
- GR_CREATE_STATIC_PROCESSOR(gCubicHairAA, GrCubicEffect, (kHairlineAA_GrProcessorEdgeType));
- GR_CREATE_STATIC_PROCESSOR(gCubicFillBW, GrCubicEffect, (kFillBW_GrProcessorEdgeType));
switch (edgeType) {
case kFillAA_GrProcessorEdgeType:
if (!caps.shaderDerivativeSupport()) {
return NULL;
}
- gCubicFillAA->ref();
- return gCubicFillAA;
+ return SkNEW_ARGS(GrCubicEffect, (kFillAA_GrProcessorEdgeType));
case kHairlineAA_GrProcessorEdgeType:
if (!caps.shaderDerivativeSupport()) {
return NULL;
}
- gCubicHairAA->ref();
- return gCubicHairAA;
+ return SkNEW_ARGS(GrCubicEffect, (kHairlineAA_GrProcessorEdgeType));
case kFillBW_GrProcessorEdgeType:
- gCubicFillBW->ref();
- return gCubicFillBW;
+ return SkNEW_ARGS(GrCubicEffect, (kFillBW_GrProcessorEdgeType));
default:
return NULL;
}