| Index: src/gpu/GrPathRenderer.h
|
| diff --git a/src/gpu/GrPathRenderer.h b/src/gpu/GrPathRenderer.h
|
| index 1072f69649742872c85390480ed0288c5c81d899..3bc02306e63f7e8b83faf2313db5bf5ca8eda8b9 100644
|
| --- a/src/gpu/GrPathRenderer.h
|
| +++ b/src/gpu/GrPathRenderer.h
|
| @@ -10,13 +10,12 @@
|
|
|
| #include "GrDrawTarget.h"
|
| #include "GrStencil.h"
|
| -#include "GrStrokeInfo.h"
|
| +#include "GrStyle.h"
|
|
|
| #include "SkDrawProcs.h"
|
| #include "SkTArray.h"
|
|
|
| class SkPath;
|
| -
|
| struct GrPoint;
|
|
|
| /**
|
| @@ -72,14 +71,14 @@ public:
|
| * fPipelineBuilder The pipelineBuilder
|
| * fViewMatrix The viewMatrix
|
| * fPath The path to draw
|
| - * fStroke The stroke information (width, join, cap)
|
| + * fStyle The styling info (path effect, stroking info)
|
| * fAntiAlias True if anti-aliasing is required.
|
| */
|
| struct CanDrawPathArgs {
|
| const GrShaderCaps* fShaderCaps;
|
| const SkMatrix* fViewMatrix;
|
| const SkPath* fPath;
|
| - const GrStrokeInfo* fStroke;
|
| + const GrStyle* fStyle;
|
| bool fAntiAlias;
|
|
|
| // These next two are only used by GrStencilAndCoverPathRenderer
|
| @@ -90,7 +89,7 @@ public:
|
| SkASSERT(fShaderCaps);
|
| SkASSERT(fViewMatrix);
|
| SkASSERT(fPath);
|
| - SkASSERT(fStroke);
|
| + SkASSERT(fStyle);
|
| SkASSERT(!fPath->isEmpty());
|
| }
|
| };
|
| @@ -116,7 +115,7 @@ public:
|
| * fColor Color to render with
|
| * fViewMatrix The viewMatrix
|
| * fPath the path to draw.
|
| - * fStroke the stroke information (width, join, cap)
|
| + * fStyle the style information (path effect, stroke info)
|
| * fAntiAlias true if anti-aliasing is required.
|
| * fGammaCorrect true if gamma-correct rendering is to be used.
|
| */
|
| @@ -127,7 +126,7 @@ public:
|
| GrColor fColor;
|
| const SkMatrix* fViewMatrix;
|
| const SkPath* fPath;
|
| - const GrStrokeInfo* fStroke;
|
| + const GrStyle* fStyle;
|
| bool fAntiAlias;
|
| bool fGammaCorrect;
|
|
|
| @@ -137,7 +136,7 @@ public:
|
| SkASSERT(fPipelineBuilder);
|
| SkASSERT(fViewMatrix);
|
| SkASSERT(fPath);
|
| - SkASSERT(fStroke);
|
| + SkASSERT(fStyle);
|
| SkASSERT(!fPath->isEmpty());
|
| }
|
| };
|
| @@ -153,7 +152,7 @@ public:
|
| canArgs.fShaderCaps = args.fTarget->caps()->shaderCaps();
|
| canArgs.fViewMatrix = args.fViewMatrix;
|
| canArgs.fPath = args.fPath;
|
| - canArgs.fStroke = args.fStroke;
|
| + canArgs.fStyle = args.fStyle;
|
| canArgs.fAntiAlias = args.fAntiAlias;
|
|
|
| canArgs.fIsStencilDisabled = args.fPipelineBuilder->getStencil().isDisabled();
|
| @@ -162,8 +161,7 @@ public:
|
| SkASSERT(this->canDrawPath(canArgs));
|
| if (!args.fPipelineBuilder->getStencil().isDisabled()) {
|
| SkASSERT(kNoRestriction_StencilSupport == this->getStencilSupport(*args.fPath));
|
| - SkASSERT(!args.fStroke->isDashed());
|
| - SkASSERT(args.fStroke->isFillStyle());
|
| + SkASSERT(args.fStyle->isSimpleFill());
|
| }
|
| #endif
|
| return this->onDrawPath(args);
|
| @@ -197,22 +195,21 @@ public:
|
| /**
|
| * Draws the path to the stencil buffer. Assume the writable stencil bits are already
|
| * initialized to zero. The pixels inside the path will have non-zero stencil values afterwards.
|
| - *
|
| */
|
| void stencilPath(const StencilPathArgs& args) {
|
| SkDEBUGCODE(args.validate();)
|
| SkASSERT(kNoSupport_StencilSupport != this->getStencilSupport(*args.fPath));
|
| -
|
| this->onStencilPath(args);
|
| }
|
|
|
| // Helper for determining if we can treat a thin stroke as a hairline w/ coverage.
|
| // If we can, we draw lots faster (raster device does this same test).
|
| - static bool IsStrokeHairlineOrEquivalent(const GrStrokeInfo& stroke, const SkMatrix& matrix,
|
| + static bool IsStrokeHairlineOrEquivalent(const GrStyle& style, const SkMatrix& matrix,
|
| SkScalar* outCoverage) {
|
| - if (stroke.isDashed()) {
|
| + if (style.pathEffect()) {
|
| return false;
|
| }
|
| + const SkStrokeRec& stroke = style.strokeRec();
|
| if (stroke.isHairlineStyle()) {
|
| if (outCoverage) {
|
| *outCoverage = SK_Scalar1;
|
| @@ -279,13 +276,12 @@ private:
|
| drawArgs.fColor = 0xFFFFFFFF;
|
| drawArgs.fViewMatrix = args.fViewMatrix;
|
| drawArgs.fPath = args.fPath;
|
| - drawArgs.fStroke = &GrStrokeInfo::FillInfo();
|
| + drawArgs.fStyle = &GrStyle::SimpleFill();
|
| drawArgs.fAntiAlias = false;
|
| drawArgs.fGammaCorrect = false;
|
| this->drawPath(drawArgs);
|
| }
|
|
|
| -
|
| typedef SkRefCnt INHERITED;
|
| };
|
|
|
|
|