Index: src/gpu/GrPathRenderer.h |
diff --git a/src/gpu/GrPathRenderer.h b/src/gpu/GrPathRenderer.h |
index 051e0078525a5f7a3c9353924b8fe30636467efc..1072f69649742872c85390480ed0288c5c81d899 100644 |
--- a/src/gpu/GrPathRenderer.h |
+++ b/src/gpu/GrPathRenderer.h |
@@ -57,14 +57,13 @@ public: |
/** |
* This function is to get the stencil support for a particular path. The path's fill must |
- * not be an inverse type. |
+ * not be an inverse type. The path will always be filled and not stroked. |
* |
* @param path the path that will be drawn |
- * @param stroke the stroke information (width, join, cap). |
*/ |
- StencilSupport getStencilSupport(const SkPath& path, const GrStrokeInfo& stroke) const { |
+ StencilSupport getStencilSupport(const SkPath& path) const { |
SkASSERT(!path.isInverseFillType()); |
- return this->onGetStencilSupport(path, stroke); |
+ return this->onGetStencilSupport(path); |
} |
/** Args to canDrawPath() |
@@ -161,9 +160,11 @@ public: |
canArgs.fIsStencilBufferMSAA = |
args.fPipelineBuilder->getRenderTarget()->isStencilBufferMultisampled(); |
SkASSERT(this->canDrawPath(canArgs)); |
- SkASSERT(args.fPipelineBuilder->getStencil().isDisabled() || |
- kNoRestriction_StencilSupport == this->getStencilSupport(*args.fPath, |
- *args.fStroke)); |
+ if (!args.fPipelineBuilder->getStencil().isDisabled()) { |
+ SkASSERT(kNoRestriction_StencilSupport == this->getStencilSupport(*args.fPath)); |
+ SkASSERT(!args.fStroke->isDashed()); |
+ SkASSERT(args.fStroke->isFillStyle()); |
+ } |
#endif |
return this->onDrawPath(args); |
} |
@@ -175,7 +176,6 @@ public: |
* fPipelineBuilder The pipeline builder. |
* fViewMatrix Matrix applied to the path. |
* fPath The path to draw. |
- * fStroke The stroke information (width, join, cap) |
*/ |
struct StencilPathArgs { |
GrDrawTarget* fTarget; |
@@ -183,7 +183,6 @@ public: |
GrPipelineBuilder* fPipelineBuilder; |
const SkMatrix* fViewMatrix; |
const SkPath* fPath; |
- const GrStrokeInfo* fStroke; |
void validate() const { |
SkASSERT(fTarget); |
@@ -191,7 +190,6 @@ public: |
SkASSERT(fPipelineBuilder); |
SkASSERT(fViewMatrix); |
SkASSERT(fPath); |
- SkASSERT(fStroke); |
SkASSERT(!fPath->isEmpty()); |
} |
}; |
@@ -203,7 +201,7 @@ public: |
*/ |
void stencilPath(const StencilPathArgs& args) { |
SkDEBUGCODE(args.validate();) |
- SkASSERT(kNoSupport_StencilSupport != this->getStencilSupport(*args.fPath, *args.fStroke)); |
+ SkASSERT(kNoSupport_StencilSupport != this->getStencilSupport(*args.fPath)); |
this->onStencilPath(args); |
} |
@@ -246,7 +244,7 @@ private: |
/** |
* Subclass overrides if it has any limitations of stenciling support. |
*/ |
- virtual StencilSupport onGetStencilSupport(const SkPath&, const GrStrokeInfo&) const { |
+ virtual StencilSupport onGetStencilSupport(const SkPath&) const { |
return kNoRestriction_StencilSupport; |
} |
@@ -281,7 +279,7 @@ private: |
drawArgs.fColor = 0xFFFFFFFF; |
drawArgs.fViewMatrix = args.fViewMatrix; |
drawArgs.fPath = args.fPath; |
- drawArgs.fStroke = args.fStroke; |
+ drawArgs.fStroke = &GrStrokeInfo::FillInfo(); |
drawArgs.fAntiAlias = false; |
drawArgs.fGammaCorrect = false; |
this->drawPath(drawArgs); |