• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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                             GrPathFill fill,
22                             const GrDrawTarget* target,
23                             bool antiAlias) const SK_OVERRIDE;
24 protected:
25     virtual bool onDrawPath(const SkPath& path,
26                             GrPathFill fill,
27                             const GrVec* translate,
28                             GrDrawTarget* target,
29                             GrDrawState::StageMask stageMask,
30                             bool antiAlias) SK_OVERRIDE;
31 
32 private:
33 
34     GrAAHairLinePathRenderer(const GrContext* context,
35                              const GrIndexBuffer* fLinesIndexBuffer,
36                              const GrIndexBuffer* fQuadsIndexBuffer);
37 
38     bool createGeom(const SkPath& path,
39                     const GrVec* translate,
40                     GrDrawTarget* target,
41                     GrDrawState::StageMask stageMask,
42                     int* lineCnt,
43                     int* quadCnt);
44 
45     const GrIndexBuffer*        fLinesIndexBuffer;
46     const GrIndexBuffer*        fQuadsIndexBuffer;
47 
48     typedef GrPathRenderer INHERITED;
49 };
50 
51 
52 #endif
53 
54