diff options
Diffstat (limited to 'src/gpu/GrGpu.h')
-rw-r--r-- | src/gpu/GrGpu.h | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/gpu/GrGpu.h b/src/gpu/GrGpu.h index 239ae6bd83..6a9dfa2b58 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(); |