|
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 GrOvalRenderer() : fRRectIndexBuffer(NULL) {} |
|
28 ~GrOvalRenderer() { |
|
29 this->reset(); |
|
30 } |
|
31 |
|
32 void reset(); |
|
33 |
|
34 bool drawOval(GrDrawTarget* target, const GrContext* context, bool useAA, |
|
35 const SkRect& oval, const SkStrokeRec& stroke); |
|
36 bool drawSimpleRRect(GrDrawTarget* target, GrContext* context, bool useAA, |
|
37 const SkRRect& rrect, const SkStrokeRec& stroke); |
|
38 |
|
39 private: |
|
40 bool drawEllipse(GrDrawTarget* target, bool useCoverageAA, |
|
41 const SkRect& ellipse, |
|
42 const SkStrokeRec& stroke); |
|
43 bool drawDIEllipse(GrDrawTarget* target, bool useCoverageAA, |
|
44 const SkRect& ellipse, |
|
45 const SkStrokeRec& stroke); |
|
46 void drawCircle(GrDrawTarget* target, bool useCoverageAA, |
|
47 const SkRect& circle, |
|
48 const SkStrokeRec& stroke); |
|
49 |
|
50 GrIndexBuffer* rRectIndexBuffer(GrGpu* gpu); |
|
51 |
|
52 GrIndexBuffer* fRRectIndexBuffer; |
|
53 |
|
54 typedef SkRefCnt INHERITED; |
|
55 }; |
|
56 |
|
57 #endif // GrOvalRenderer_DEFINED |