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 14class GrContext; 15class GrDrawTarget; 16class GrPaint; 17struct SkRect; 18class SkStrokeRec; 19 20/* 21 * This class wraps helper functions that draw ovals and roundrects (filled & stroked) 22 */ 23class GrOvalRenderer : public SkRefCnt { 24public: 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 49private: 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