1/*
2 * Copyright 2015 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 GrTessellatingPathRenderer_DEFINED
9#define GrTessellatingPathRenderer_DEFINED
10
11#include "GrPathRenderer.h"
12
13/**
14 *  Subclass that renders the path by converting to screen-space trapezoids plus
15 *   extra 1-pixel geometry for AA.
16 */
17class SK_API GrTessellatingPathRenderer : public GrPathRenderer {
18public:
19    GrTessellatingPathRenderer();
20
21    bool canDrawPath(const GrDrawTarget*,
22                     const GrPipelineBuilder*,
23                     const SkMatrix&,
24                     const SkPath&,
25                     const GrStrokeInfo&,
26                     bool antiAlias) const override;
27protected:
28
29    StencilSupport onGetStencilSupport(const GrDrawTarget*,
30                                       const GrPipelineBuilder*,
31                                       const SkPath&,
32                                       const GrStrokeInfo&) const override;
33
34    bool onDrawPath(GrDrawTarget*,
35                    GrPipelineBuilder*,
36                    GrColor,
37                    const SkMatrix& viewMatrix,
38                    const SkPath&,
39                    const GrStrokeInfo&,
40                    bool antiAlias) override;
41
42    typedef GrPathRenderer INHERITED;
43};
44
45#endif
46