Plumb GrContext everywhere

There is no good way to split the monster CL up. This breaks out
the GrContext plumbing but doesn't use it.

Change-Id: I90856d428d372bcec3f8821e6364667b367927d4
Reviewed-on: https://skia-review.googlesource.com/133382
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
diff --git a/src/gpu/ops/GrOvalOpFactory.h b/src/gpu/ops/GrOvalOpFactory.h
index 0c10d6b..117d31d 100644
--- a/src/gpu/ops/GrOvalOpFactory.h
+++ b/src/gpu/ops/GrOvalOpFactory.h
@@ -11,6 +11,7 @@
 #include "GrColor.h"
 #include "SkRefCnt.h"
 
+class GrContext;
 class GrDrawOp;
 class GrPaint;
 class GrShaderCaps;
@@ -25,19 +26,22 @@
  */
 class GrOvalOpFactory {
 public:
-    static std::unique_ptr<GrDrawOp> MakeOvalOp(GrPaint&&,
+    static std::unique_ptr<GrDrawOp> MakeOvalOp(GrContext*,
+                                                GrPaint&&,
                                                 const SkMatrix&,
                                                 const SkRect& oval,
                                                 const GrStyle& style,
                                                 const GrShaderCaps*);
 
-    static std::unique_ptr<GrDrawOp> MakeRRectOp(GrPaint&&,
+    static std::unique_ptr<GrDrawOp> MakeRRectOp(GrContext*,
+                                                 GrPaint&&,
                                                  const SkMatrix&,
                                                  const SkRRect&,
                                                  const SkStrokeRec&,
                                                  const GrShaderCaps*);
 
-    static std::unique_ptr<GrDrawOp> MakeArcOp(GrPaint&&,
+    static std::unique_ptr<GrDrawOp> MakeArcOp(GrContext*,
+                                               GrPaint&&,
                                                const SkMatrix&,
                                                const SkRect& oval,
                                                SkScalar startAngle,