| 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(); | 
|  |