Index: src/gpu/GrPathRendering.h |
diff --git a/src/gpu/GrPathRendering.h b/src/gpu/GrPathRendering.h |
index 26cfa110ce68084bae3d92b56bab3479c3891908..cd42206f436ca9be9279f57ac15428ce06a353f5 100644 |
--- a/src/gpu/GrPathRendering.h |
+++ b/src/gpu/GrPathRendering.h |
@@ -16,6 +16,7 @@ class SkDescriptor; |
class SkTypeface; |
class GrPath; |
class GrGpu; |
+class GrStencilSettings; |
/** |
* Abstract class wrapping HW path rendering API. |
@@ -33,6 +34,18 @@ class GrPathRendering { |
public: |
virtual ~GrPathRendering() { } |
+ // No native support for inverse at this time |
+ enum FillType { |
+ /** Specifies that "inside" is computed by a non-zero sum of signed |
+ edge crossings |
+ */ |
+ kWinding_FillType, |
+ /** Specifies that "inside" is computed by an odd number of edge |
+ crossings |
+ */ |
+ kEvenOdd_FillType, |
+ }; |
+ |
enum PathTransformType { |
kNone_PathTransformType, //!< [] |
kTranslateX_PathTransformType, //!< [kMTransX] |
@@ -111,10 +124,11 @@ public: |
*/ |
virtual GrPathRange* createGlyphs(const SkTypeface*, const SkDescriptor*, const SkStrokeRec&) = 0; |
- virtual void stencilPath(const GrPath*, SkPath::FillType) = 0; |
- virtual void drawPath(const GrPath*, SkPath::FillType) = 0; |
+ virtual void stencilPath(const GrPath*, const GrStencilSettings&) = 0; |
+ virtual void drawPath(const GrPath*, const GrStencilSettings&) = 0; |
virtual void drawPaths(const GrPathRange*, const uint32_t indices[], int count, |
- const float transforms[], PathTransformType, SkPath::FillType) = 0; |
+ const float transforms[], PathTransformType, |
+ const GrStencilSettings&) = 0; |
protected: |
GrPathRendering() { } |