Line data Source code
1 : /*
2 : * Copyright 2011 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 GrDefaultPathRenderer_DEFINED
9 : #define GrDefaultPathRenderer_DEFINED
10 :
11 : #include "GrPathRenderer.h"
12 : #include "GrPathStencilSettings.h"
13 : #include "SkTypes.h"
14 :
15 : /**
16 : * Subclass that renders the path using the stencil buffer to resolve fill rules
17 : * (e.g. winding, even-odd)
18 : */
19 0 : class SK_API GrDefaultPathRenderer : public GrPathRenderer {
20 : public:
21 : GrDefaultPathRenderer(bool separateStencilSupport, bool stencilWrapOpsSupport);
22 :
23 : private:
24 :
25 : StencilSupport onGetStencilSupport(const GrShape&) const override;
26 :
27 : bool onCanDrawPath(const CanDrawPathArgs&) const override;
28 :
29 : bool onDrawPath(const DrawPathArgs&) override;
30 :
31 : void onStencilPath(const StencilPathArgs&) override;
32 :
33 : bool internalDrawPath(GrRenderTargetContext*,
34 : GrPaint&&,
35 : GrAAType,
36 : const GrUserStencilSettings&,
37 : const GrClip&,
38 : const SkMatrix& viewMatrix,
39 : const GrShape&,
40 : bool stencilOnly);
41 :
42 : bool fSeparateStencil;
43 : bool fStencilWrapOps;
44 :
45 : typedef GrPathRenderer INHERITED;
46 : };
47 :
48 : #endif
|