Use a prioritized list of path renderers in Gr.

http://codereview.appspot.com/4867058



git-svn-id: http://skia.googlecode.com/svn/trunk@2143 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gpu/include/GrContext.h b/gpu/include/GrContext.h
index 2f64996..ee16321 100644
--- a/gpu/include/GrContext.h
+++ b/gpu/include/GrContext.h
@@ -16,7 +16,6 @@
 // remove.
 #include "GrRenderTarget.h" 
 
-class GrDefaultPathRenderer;
 class GrDrawTarget;
 class GrFontCache;
 class GrGpu;
@@ -25,6 +24,7 @@
 class GrIndexBufferAllocPool;
 class GrInOrderDrawBuffer;
 class GrPathRenderer;
+class GrPathRendererChain;
 class GrResourceEntry;
 class GrResourceCache;
 class GrStencilBuffer;
@@ -556,8 +556,7 @@
     GrResourceCache*    fTextureCache;
     GrFontCache*        fFontCache;
 
-    GrPathRenderer*         fCustomPathRenderer;
-    GrDefaultPathRenderer*  fDefaultPathRenderer;
+    GrPathRendererChain*        fPathRendererChain;
 
     GrVertexBufferAllocPool*    fDrawBufferVBAllocPool;
     GrIndexBufferAllocPool*     fDrawBufferIBAllocPool;
@@ -592,9 +591,9 @@
 
     GrDrawTarget* prepareToDraw(const GrPaint& paint, DrawCategory drawType);
 
-    void drawClipIntoStencil();
-
-    GrPathRenderer* getPathRenderer(const GrPath&, GrPathFill);
+    GrPathRenderer* getPathRenderer(const GrDrawTarget* target,
+                                    const GrPath& path,
+                                    GrPathFill fill);
 
     struct OffscreenRecord;