Split drawing functionality out of GrContext and into new GrDrawContext

This is mainly a mechanical CL. There were some fiddly bits in GrContext.cpp where it no longer had access to the GrDrawTarget (and had to use the new GrDrawContext).

I've converted GrAARectRenderer & GrOvalRenderer into static classes so I could stop allocating them.

Review URL: https://codereview.chromium.org/1151283004
diff --git a/src/gpu/GrOvalRenderer.h b/src/gpu/GrOvalRenderer.h
index 57ce2a5..d8d9e0c 100644
--- a/src/gpu/GrOvalRenderer.h
+++ b/src/gpu/GrOvalRenderer.h
@@ -8,68 +8,64 @@
 #ifndef GrOvalRenderer_DEFINED
 #define GrOvalRenderer_DEFINED
 
-#include "GrContext.h"
 #include "GrPaint.h"
 
-class GrContext;
 class GrDrawTarget;
-class GrPaint;
+class GrPipelineBuilder;
 struct SkRect;
 class SkStrokeRec;
 
 /*
  * This class wraps helper functions that draw ovals and roundrects (filled & stroked)
  */
-class GrOvalRenderer : public SkRefCnt {
+class GrOvalRenderer {
 public:
-    SK_DECLARE_INST_COUNT(GrOvalRenderer)
-
-    bool drawOval(GrDrawTarget*,
-                  GrPipelineBuilder*,
-                  GrColor,
-                  const SkMatrix& viewMatrix,
-                  bool useAA,
-                  const SkRect& oval,
-                  const SkStrokeRec& stroke);
-    bool drawRRect(GrDrawTarget*,
-                   GrPipelineBuilder*,
-                   GrColor,
-                   const SkMatrix& viewMatrix,
-                   bool useAA,
-                   const SkRRect& rrect,
-                   const SkStrokeRec& stroke);
-    bool drawDRRect(GrDrawTarget* target,
-                    GrPipelineBuilder*,
-                    GrColor,
-                    const SkMatrix& viewMatrix,
-                    bool useAA,
-                    const SkRRect& outer,
-                    const SkRRect& inner);
+    static bool DrawOval(GrDrawTarget*,
+                         GrPipelineBuilder*,
+                         GrColor,
+                         const SkMatrix& viewMatrix,
+                         bool useAA,
+                         const SkRect& oval,
+                         const SkStrokeRec& stroke);
+    static bool DrawRRect(GrDrawTarget*,
+                          GrPipelineBuilder*,
+                          GrColor,
+                          const SkMatrix& viewMatrix,
+                          bool useAA,
+                          const SkRRect& rrect,
+                          const SkStrokeRec& stroke);
+    static bool DrawDRRect(GrDrawTarget* target,
+                           GrPipelineBuilder*,
+                           GrColor,
+                           const SkMatrix& viewMatrix,
+                           bool useAA,
+                           const SkRRect& outer,
+                           const SkRRect& inner);
 
 private:
-    bool drawEllipse(GrDrawTarget* target,
-                     GrPipelineBuilder*,
-                     GrColor,
-                     const SkMatrix& viewMatrix,
-                     bool useCoverageAA,
-                     const SkRect& ellipse,
-                     const SkStrokeRec& stroke);
-    bool drawDIEllipse(GrDrawTarget* target,
-                       GrPipelineBuilder*,
-                       GrColor,
-                       const SkMatrix& viewMatrix,
-                       bool useCoverageAA,
-                       const SkRect& ellipse,
-                       const SkStrokeRec& stroke);
-    void drawCircle(GrDrawTarget* target,
-                    GrPipelineBuilder*,
-                    GrColor,
-                    const SkMatrix& viewMatrix,
-                    bool useCoverageAA,
-                    const SkRect& circle,
-                    const SkStrokeRec& stroke);
+    GrOvalRenderer();
 
-    typedef SkRefCnt INHERITED;
+    static bool DrawEllipse(GrDrawTarget* target,
+                            GrPipelineBuilder*,
+                            GrColor,
+                            const SkMatrix& viewMatrix,
+                            bool useCoverageAA,
+                            const SkRect& ellipse,
+                            const SkStrokeRec& stroke);
+    static bool DrawDIEllipse(GrDrawTarget* target,
+                              GrPipelineBuilder*,
+                              GrColor,
+                              const SkMatrix& viewMatrix,
+                              bool useCoverageAA,
+                              const SkRect& ellipse,
+                              const SkStrokeRec& stroke);
+    static void DrawCircle(GrDrawTarget* target,
+                           GrPipelineBuilder*,
+                           GrColor,
+                           const SkMatrix& viewMatrix,
+                           bool useCoverageAA,
+                           const SkRect& circle,
+                           const SkStrokeRec& stroke);
 };
 
 #endif // GrOvalRenderer_DEFINED