aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrGpu.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/GrGpu.h')
-rw-r--r--src/gpu/GrGpu.h15
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();