Remove static effects from the effect memory pool.
Review URL: https://codereview.chromium.org/14081016
git-svn-id: http://skia.googlecode.com/svn/trunk@8828 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrAAConvexPathRenderer.cpp b/src/gpu/GrAAConvexPathRenderer.cpp
index d7d19a3..eb52b61 100644
--- a/src/gpu/GrAAConvexPathRenderer.cpp
+++ b/src/gpu/GrAAConvexPathRenderer.cpp
@@ -450,12 +450,9 @@
public:
static GrEffectRef* Create() {
- // we go through this so we only have one copy of each effect
- static SkAutoTUnref<GrEffectRef> gQuadEdgeEffectRef(
- CreateEffectRef(AutoEffectUnref(SkNEW(QuadEdgeEffect))));
-
- gQuadEdgeEffectRef.get()->ref();
- return gQuadEdgeEffectRef;
+ GR_CREATE_STATIC_EFFECT(gQuadEdgeEffect, QuadEdgeEffect, ());
+ gQuadEdgeEffect->ref();
+ return gQuadEdgeEffect;
}
virtual ~QuadEdgeEffect() {}
diff --git a/src/gpu/GrAAHairLinePathRenderer.cpp b/src/gpu/GrAAHairLinePathRenderer.cpp
index 0a19d6c..a857dc4 100644
--- a/src/gpu/GrAAHairLinePathRenderer.cpp
+++ b/src/gpu/GrAAHairLinePathRenderer.cpp
@@ -508,12 +508,9 @@
public:
static GrEffectRef* Create() {
- // we go through this so we only have one copy of each effect
- static SkAutoTUnref<GrEffectRef> gHairQuadEdgeEffectRef(
- CreateEffectRef(AutoEffectUnref(SkNEW(HairQuadEdgeEffect))));
-
- gHairQuadEdgeEffectRef.get()->ref();
- return gHairQuadEdgeEffectRef;
+ GR_CREATE_STATIC_EFFECT(gHairQuadEdgeEffect, HairQuadEdgeEffect, ());
+ gHairQuadEdgeEffect->ref();
+ return gHairQuadEdgeEffect;
}
virtual ~HairQuadEdgeEffect() {}
@@ -609,12 +606,9 @@
public:
static GrEffectRef* Create() {
- // we go through this so we only have one copy of each effect
- static SkAutoTUnref<GrEffectRef> gHairLineEdgeEffectRef(
- CreateEffectRef(AutoEffectUnref(SkNEW(HairLineEdgeEffect))));
-
- gHairLineEdgeEffectRef.get()->ref();
- return gHairLineEdgeEffectRef;
+ GR_CREATE_STATIC_EFFECT(gHairLineEdge, HairLineEdgeEffect, ());
+ gHairLineEdge->ref();
+ return gHairLineEdge;
}
virtual ~HairLineEdgeEffect() {}
diff --git a/src/gpu/GrAARectRenderer.cpp b/src/gpu/GrAARectRenderer.cpp
index eacd3f1..418d80d 100644
--- a/src/gpu/GrAARectRenderer.cpp
+++ b/src/gpu/GrAARectRenderer.cpp
@@ -30,10 +30,9 @@
class GrRectEffect : public GrEffect {
public:
static GrEffectRef* Create() {
- static SkAutoTUnref<GrEffectRef> gRectEffectRef(
- CreateEffectRef(AutoEffectUnref(SkNEW(GrRectEffect))));
- gRectEffectRef.get()->ref();
- return gRectEffectRef;
+ GR_CREATE_STATIC_EFFECT(gRectEffect, GrRectEffect, ());
+ gRectEffect->ref();
+ return gRectEffect;
}
virtual ~GrRectEffect() {}
diff --git a/src/gpu/GrOvalRenderer.cpp b/src/gpu/GrOvalRenderer.cpp
index f217262..4b79528 100644
--- a/src/gpu/GrOvalRenderer.cpp
+++ b/src/gpu/GrOvalRenderer.cpp
@@ -51,18 +51,15 @@
class CircleEdgeEffect : public GrEffect {
public:
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)))));
+ GR_CREATE_STATIC_EFFECT(gCircleStrokeEdge, CircleEdgeEffect, (true));
+ GR_CREATE_STATIC_EFFECT(gCircleFillEdge, CircleEdgeEffect, (false));
if (stroke) {
- gCircleStrokeEdgeEffectRef.get()->ref();
- return gCircleStrokeEdgeEffectRef;
+ gCircleStrokeEdge->ref();
+ return gCircleStrokeEdge;
} else {
- gCircleFillEdgeEffectRef.get()->ref();
- return gCircleFillEdgeEffectRef;
+ gCircleFillEdge->ref();
+ return gCircleFillEdge;
}
}
@@ -162,18 +159,15 @@
class EllipseEdgeEffect : public GrEffect {
public:
static GrEffectRef* Create(bool stroke) {
- // we go through this so we only have one copy of each effect (stroked/filled)
- static SkAutoTUnref<GrEffectRef> gEllipseStrokeEdgeEffectRef(
- CreateEffectRef(AutoEffectUnref(SkNEW_ARGS(EllipseEdgeEffect, (true)))));
- static SkAutoTUnref<GrEffectRef> gEllipseFillEdgeEffectRef(
- CreateEffectRef(AutoEffectUnref(SkNEW_ARGS(EllipseEdgeEffect, (false)))));
+ GR_CREATE_STATIC_EFFECT(gEllipseStrokeEdge, EllipseEdgeEffect, (true));
+ GR_CREATE_STATIC_EFFECT(gEllipseFillEdge, EllipseEdgeEffect, (false));
if (stroke) {
- gEllipseStrokeEdgeEffectRef.get()->ref();
- return gEllipseStrokeEdgeEffectRef;
+ gEllipseStrokeEdge->ref();
+ return gEllipseStrokeEdge;
} else {
- gEllipseFillEdgeEffectRef.get()->ref();
- return gEllipseFillEdgeEffectRef;
+ gEllipseFillEdge->ref();
+ return gEllipseFillEdge;
}
}