Fix for effect cache key.

Adds the additional shift needed to incorporate the attribKeyBits.  Also simplifies the creation of the static globals for the edge effects.

Author: jvanverth@google.com

Reviewed By: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/13465019

git-svn-id: http://skia.googlecode.com/svn/trunk@8498 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
commit-bot@chromium.org 2013-04-02 20:48:38 +00:00
parent 00aae979fa
commit 5d01bec07a
3 changed files with 13 additions and 16 deletions

View File

@ -71,7 +71,7 @@ public:
protected:
GrTBackendEffectFactory() {
fEffectClassID = GenID() << (kEffectKeyBits + kTextureKeyBits) ;
fEffectClassID = GenID() << (kAttribKeyBits + kEffectKeyBits + kTextureKeyBits) ;
}
};

View File

@ -451,11 +451,10 @@ public:
static GrEffectRef* Create() {
// we go through this so we only have one copy of each effect
static GrEffectRef* gQuadEdgeEffectRef =
CreateEffectRef(AutoEffectUnref(SkNEW(QuadEdgeEffect)));
static SkAutoTUnref<GrEffectRef> gUnref(gQuadEdgeEffectRef);
static SkAutoTUnref<GrEffectRef> gQuadEdgeEffectRef(
CreateEffectRef(AutoEffectUnref(SkNEW(QuadEdgeEffect))));
gQuadEdgeEffectRef->ref();
gQuadEdgeEffectRef.get()->ref();
return gQuadEdgeEffectRef;
}
@ -524,7 +523,7 @@ public:
private:
typedef GrGLEffect INHERITED;
};
private:
QuadEdgeEffect() {
this->addVertexAttrib(kVec4f_GrSLType);

View File

@ -509,11 +509,10 @@ public:
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();
static SkAutoTUnref<GrEffectRef> gHairQuadEdgeEffectRef(
CreateEffectRef(AutoEffectUnref(SkNEW(HairQuadEdgeEffect))));
gHairQuadEdgeEffectRef.get()->ref();
return gHairQuadEdgeEffectRef;
}
@ -611,11 +610,10 @@ public:
static GrEffectRef* Create() {
// we go through this so we only have one copy of each effect
static GrEffectRef* gHairLineEdgeEffectRef =
CreateEffectRef(AutoEffectUnref(SkNEW(HairLineEdgeEffect)));
static SkAutoTUnref<GrEffectRef> gUnref(gHairLineEdgeEffectRef);
gHairLineEdgeEffectRef->ref();
static SkAutoTUnref<GrEffectRef> gHairLineEdgeEffectRef(
CreateEffectRef(AutoEffectUnref(SkNEW(HairLineEdgeEffect))));
gHairLineEdgeEffectRef.get()->ref();
return gHairLineEdgeEffectRef;
}