1 /* 2 * Copyright 2013 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef GrOvalRenderer_DEFINED 9 #define GrOvalRenderer_DEFINED 10 11 #include "GrContext.h" 12 #include "GrPaint.h" 13 14 class GrContext; 15 class GrDrawTarget; 16 class GrPaint; 17 struct SkRect; 18 class SkStrokeRec; 19 20 /* 21 * This class wraps helper functions that draw ovals and roundrects (filled & stroked) 22 */ 23 class GrOvalRenderer : public SkRefCnt { 24 public: 25 SK_DECLARE_INST_COUNT(GrOvalRenderer) 26 27 bool drawOval(GrDrawTarget*, 28 GrPipelineBuilder*, 29 GrColor, 30 const SkMatrix& viewMatrix, 31 bool useAA, 32 const SkRect& oval, 33 const SkStrokeRec& stroke); 34 bool drawRRect(GrDrawTarget*, 35 GrPipelineBuilder*, 36 GrColor, 37 const SkMatrix& viewMatrix, 38 bool useAA, 39 const SkRRect& rrect, 40 const SkStrokeRec& stroke); 41 bool drawDRRect(GrDrawTarget* target, 42 GrPipelineBuilder*, 43 GrColor, 44 const SkMatrix& viewMatrix, 45 bool useAA, 46 const SkRRect& outer, 47 const SkRRect& inner); 48 49 private: 50 bool drawEllipse(GrDrawTarget* target, 51 GrPipelineBuilder*, 52 GrColor, 53 const SkMatrix& viewMatrix, 54 bool useCoverageAA, 55 const SkRect& ellipse, 56 const SkStrokeRec& stroke); 57 bool drawDIEllipse(GrDrawTarget* target, 58 GrPipelineBuilder*, 59 GrColor, 60 const SkMatrix& viewMatrix, 61 bool useCoverageAA, 62 const SkRect& ellipse, 63 const SkStrokeRec& stroke); 64 void drawCircle(GrDrawTarget* target, 65 GrPipelineBuilder*, 66 GrColor, 67 const SkMatrix& viewMatrix, 68 bool useCoverageAA, 69 const SkRect& circle, 70 const SkStrokeRec& stroke); 71 72 typedef SkRefCnt INHERITED; 73 }; 74 75 #endif // GrOvalRenderer_DEFINED 76