Index: src/gpu/GrGpu.h |
diff --git a/src/gpu/GrGpu.h b/src/gpu/GrGpu.h |
index 239ae6bd8362d3dbd25a7ca8b76027f8169afb6f..6a9dfa2b58038506912a9c6b9dedc7d75c014e15 100644 |
--- a/src/gpu/GrGpu.h |
+++ b/src/gpu/GrGpu.h |
@@ -335,12 +335,15 @@ public: |
// clipping. |
}; |
+ void getPathStencilSettingsForFillType(SkPath::FillType fill, GrStencilSettings* outStencilSettings); |
+ |
protected: |
enum DrawType { |
kDrawPoints_DrawType, |
kDrawLines_DrawType, |
kDrawTriangles_DrawType, |
kStencilPath_DrawType, |
+ kFillPath_DrawType, |
}; |
DrawType PrimTypeToDrawType(GrPrimitiveType type) { |
@@ -440,15 +443,10 @@ private: |
// overridden by backend-specific derived class to perform the draw call. |
virtual void onGpuDraw(const DrawInfo&) = 0; |
- // when GrDrawTarget::stencilPath is called the draw state's current stencil |
- // settings are ignored. Instead the GrGpu decides the stencil rules |
- // necessary to stencil the path. These are still subject to filtering by |
- // the clip mask manager. |
- virtual void setStencilPathSettings(const GrPath&, |
- SkPath::FillType, |
- GrStencilSettings* settings) = 0; |
+ |
// overridden by backend-specific derived class to perform the path stenciling. |
virtual void onGpuStencilPath(const GrPath*, SkPath::FillType) = 0; |
+ virtual void onGpuFillPath(const GrPath*, SkPath::FillType) = 0; |
// overridden by backend-specific derived class to perform flush |
virtual void onForceRenderTargetFlush() = 0; |
@@ -494,6 +492,9 @@ private: |
virtual void onStencilPath(const GrPath* path, const SkStrokeRec& stroke, |
SkPath::FillType) SK_OVERRIDE; |
+ virtual void onFillPath(const GrPath* path, const SkStrokeRec& stroke, SkPath::FillType, |
+ const GrDeviceCoordTexture* dstCopy) SK_OVERRIDE; |
+ |
// readies the pools to provide vertex/index data. |
void prepareVertexPool(); |
void prepareIndexPool(); |