Home | History | Annotate | Download | only in gpu
      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
     58