Home | History | Annotate | Download | only in gpu
      1 
      2 /*
      3  * Copyright 2011 Google Inc.
      4  *
      5  * Use of this source code is governed by a BSD-style license that can be
      6  * found in the LICENSE file.
      7  */
      8 
      9 #ifndef GrAAHairLinePathRenderer_DEFINED
     10 #define GrAAHairLinePathRenderer_DEFINED
     11 
     12 #include "GrPathRenderer.h"
     13 
     14 class GrAAHairLinePathRenderer : public GrPathRenderer {
     15 public:
     16     virtual ~GrAAHairLinePathRenderer();
     17 
     18     static GrPathRenderer* Create(GrContext* context);
     19 
     20     virtual bool canDrawPath(const SkPath& path,
     21                              const SkStrokeRec& stroke,
     22                              const GrDrawTarget* target,
     23                              bool antiAlias) const SK_OVERRIDE;
     24 
     25 protected:
     26     virtual bool onDrawPath(const SkPath& path,
     27                             const SkStrokeRec& stroke,
     28                             GrDrawTarget* target,
     29                             bool antiAlias) SK_OVERRIDE;
     30 
     31 private:
     32 
     33     GrAAHairLinePathRenderer(const GrContext* context,
     34                              const GrIndexBuffer* fLinesIndexBuffer,
     35                              const GrIndexBuffer* fQuadsIndexBuffer);
     36 
     37     bool createGeom(const SkPath& path,
     38                     GrDrawTarget* target,
     39                     int* lineCnt,
     40                     int* quadCnt,
     41                     GrDrawTarget::AutoReleaseGeometry* arg);
     42 
     43     const GrIndexBuffer*        fLinesIndexBuffer;
     44     const GrIndexBuffer*        fQuadsIndexBuffer;
     45 
     46     typedef GrPathRenderer INHERITED;
     47 };
     48 
     49 
     50 #endif
     51