Home | History | Annotate | Download | only in batches
      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 "SkTypes.h"
     13 
     14 /**
     15  *  Subclass that renders the path using the stencil buffer to resolve fill rules
     16  * (e.g. winding, even-odd)
     17  */
     18 class SK_API GrDefaultPathRenderer : public GrPathRenderer {
     19 public:
     20     GrDefaultPathRenderer(bool separateStencilSupport, bool stencilWrapOpsSupport);
     21 
     22 private:
     23 
     24     StencilSupport onGetStencilSupport(const SkPath&, const GrStrokeInfo&) const override;
     25 
     26     bool onCanDrawPath(const CanDrawPathArgs&) const override;
     27 
     28     bool onDrawPath(const DrawPathArgs&) override;
     29 
     30     void onStencilPath(const StencilPathArgs&) override;
     31 
     32     bool internalDrawPath(GrDrawTarget*,
     33                           GrPipelineBuilder*,
     34                           GrColor,
     35                           const SkMatrix& viewMatrix,
     36                           const SkPath&,
     37                           const GrStrokeInfo&,
     38                           bool stencilOnly);
     39 
     40     bool    fSeparateStencil;
     41     bool    fStencilWrapOps;
     42 
     43     typedef GrPathRenderer INHERITED;
     44 };
     45 
     46 #endif
     47