| /* |
| * Copyright 2013 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef GrOvalRenderer_DEFINED |
| #define GrOvalRenderer_DEFINED |
| |
| #include "GrContext.h" |
| #include "GrPaint.h" |
| |
| class GrContext; |
| class GrDrawTarget; |
| class GrPaint; |
| struct SkRect; |
| class SkStrokeRec; |
| |
| /* |
| * This class wraps helper functions that draw ovals and roundrects (filled & stroked) |
| */ |
| class GrOvalRenderer : public SkRefCnt { |
| public: |
| SK_DECLARE_INST_COUNT(GrOvalRenderer) |
| |
| GrOvalRenderer() : fRRectIndexBuffer(NULL) {} |
| ~GrOvalRenderer() { |
| this->reset(); |
| } |
| |
| void reset(); |
| |
| bool drawOval(GrDrawTarget* target, const GrContext* context, bool useAA, |
| const SkRect& oval, const SkStrokeRec& stroke); |
| bool drawRRect(GrDrawTarget* target, GrContext* context, bool useAA, |
| const SkRRect& rrect, const SkStrokeRec& stroke); |
| bool drawDRRect(GrDrawTarget* target, GrContext* context, bool useAA, |
| const SkRRect& outer, const SkRRect& inner); |
| |
| private: |
| bool drawEllipse(GrDrawTarget* target, bool useCoverageAA, |
| const SkRect& ellipse, |
| const SkStrokeRec& stroke); |
| bool drawDIEllipse(GrDrawTarget* target, bool useCoverageAA, |
| const SkRect& ellipse, |
| const SkStrokeRec& stroke); |
| void drawCircle(GrDrawTarget* target, bool useCoverageAA, |
| const SkRect& circle, |
| const SkStrokeRec& stroke); |
| |
| GrIndexBuffer* rRectIndexBuffer(GrGpu* gpu); |
| |
| GrIndexBuffer* fRRectIndexBuffer; |
| |
| typedef SkRefCnt INHERITED; |
| }; |
| |
| #endif // GrOvalRenderer_DEFINED |