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