Fix for effect cache key.
authorcommit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>
Tue, 2 Apr 2013 20:48:38 +0000 (20:48 +0000)
committercommit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>
Tue, 2 Apr 2013 20:48:38 +0000 (20:48 +0000)
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

include/gpu/GrTBackendEffectFactory.h
src/gpu/GrAAConvexPathRenderer.cpp
src/gpu/GrAAHairLinePathRenderer.cpp

index 8697f8e..813f54b 100644 (file)
@@ -71,7 +71,7 @@ public:
 
 protected:
     GrTBackendEffectFactory() {
-        fEffectClassID = GenID() << (kEffectKeyBits + kTextureKeyBits) ;
+        fEffectClassID = GenID() << (kAttribKeyBits + kEffectKeyBits + kTextureKeyBits) ;
     }
 };
 
index ca5addc..1ef991e 100644 (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); 
index fdb6009..08a4111 100644 (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;
     }