| Index: src/gpu/GrStrokeInfo.h
|
| diff --git a/src/gpu/GrStrokeInfo.h b/src/gpu/GrStrokeInfo.h
|
| index e1349a7eece9d941afdc8dfdd801154d759ccc62..5ba3cfe91dbb8fe8672ff61329ce4619d0bbccce 100644
|
| --- a/src/gpu/GrStrokeInfo.h
|
| +++ b/src/gpu/GrStrokeInfo.h
|
| @@ -16,12 +16,15 @@
|
| * which holds information on fill style, width, miter, cap, and join. It also holds information
|
| * about the dash like intervals, count, and phase.
|
| */
|
| -class GrStrokeInfo {
|
| -public:
|
| - GrStrokeInfo(SkStrokeRec::InitStyle style) :
|
| - fStroke(style), fDashType(SkPathEffect::kNone_DashType) {}
|
| +class GrStrokeInfo : public SkStrokeRec {
|
| +public:
|
| + GrStrokeInfo(SkStrokeRec::InitStyle style)
|
| + : INHERITED(style)
|
| + , fDashType(SkPathEffect::kNone_DashType) {
|
| + }
|
|
|
| - GrStrokeInfo(const GrStrokeInfo& src, bool includeDash = true) : fStroke(src.fStroke) {
|
| + GrStrokeInfo(const GrStrokeInfo& src, bool includeDash = true)
|
| + : INHERITED(src) {
|
| if (includeDash && src.isDashed()) {
|
| fDashType = src.fDashType;
|
| fDashPhase = src.fDashPhase;
|
| @@ -32,13 +35,15 @@ public:
|
| }
|
| }
|
|
|
| - GrStrokeInfo(const SkPaint& paint, SkPaint::Style styleOverride) :
|
| - fStroke(paint, styleOverride), fDashType(SkPathEffect::kNone_DashType) {
|
| + GrStrokeInfo(const SkPaint& paint, SkPaint::Style styleOverride)
|
| + : INHERITED(paint, styleOverride)
|
| + , fDashType(SkPathEffect::kNone_DashType) {
|
| this->init(paint);
|
| }
|
|
|
| - explicit GrStrokeInfo(const SkPaint& paint) :
|
| - fStroke(paint), fDashType(SkPathEffect::kNone_DashType) {
|
| + explicit GrStrokeInfo(const SkPaint& paint)
|
| + : INHERITED(paint)
|
| + , fDashType(SkPathEffect::kNone_DashType) {
|
| this->init(paint);
|
| }
|
|
|
| @@ -51,23 +56,17 @@ public:
|
| } else {
|
| this->removeDash();
|
| }
|
| - fStroke = other.fStroke;
|
| + this->INHERITED::operator=(other);
|
| return *this;
|
| }
|
|
|
| - const SkStrokeRec& getStrokeRec() const { return fStroke; }
|
| -
|
| - SkStrokeRec* getStrokeRecPtr() { return &fStroke; }
|
| -
|
| - void setFillStyle() { fStroke.setFillStyle(); }
|
| -
|
| /*
|
| * This functions takes in a patheffect and updates the dashing information if the path effect
|
| * is a Dash type. Returns true if the path effect is a dashed effect and we are stroking,
|
| * otherwise it returns false.
|
| */
|
| bool setDashInfo(const SkPathEffect* pe) {
|
| - if (pe && !fStroke.isFillStyle()) {
|
| + if (pe && !this->isFillStyle()) {
|
| SkPathEffect::DashInfo dashInfo;
|
| fDashType = pe->asADash(&dashInfo);
|
| if (SkPathEffect::kDash_DashType == fDashType) {
|
| @@ -85,8 +84,7 @@ public:
|
| * Like the above, but sets with an explicit SkPathEffect::DashInfo
|
| */
|
| bool setDashInfo(const SkPathEffect::DashInfo& info) {
|
| - if (!fStroke.isFillStyle()) {
|
| - SkASSERT(!fStroke.isFillStyle());
|
| + if (!this->isFillStyle()) {
|
| fDashType = SkPathEffect::kDash_DashType;
|
| fDashPhase = info.fPhase;
|
| fIntervals.reset(info.fCount);
|
| @@ -99,11 +97,9 @@ public:
|
| }
|
|
|
| bool isDashed() const {
|
| - return (!fStroke.isFillStyle() && SkPathEffect::kDash_DashType == fDashType);
|
| + return (!this->isFillStyle() && SkPathEffect::kDash_DashType == fDashType);
|
| }
|
|
|
| - bool isFillStyle() const { return fStroke.isFillStyle(); }
|
| -
|
| int32_t getDashCount() const {
|
| SkASSERT(this->isDashed());
|
| return fIntervals.count();
|
| @@ -129,19 +125,21 @@ public:
|
| * will be unmodified. The stroking in the SkStrokeRec might still
|
| * be applicable.
|
| */
|
| - bool applyDash(SkPath* dst, GrStrokeInfo* dstStrokeInfo, const SkPath& src) const;
|
| + bool applyDashToPath(SkPath* dst, GrStrokeInfo* dstStrokeInfo, const SkPath& src) const;
|
|
|
| private:
|
| + // Prevent accidental usage, not implemented for GrStrokeInfos.
|
| + bool hasEqualEffect(const SkStrokeRec& other) const;
|
|
|
| void init(const SkPaint& paint) {
|
| const SkPathEffect* pe = paint.getPathEffect();
|
| this->setDashInfo(pe);
|
| }
|
|
|
| - SkStrokeRec fStroke;
|
| SkPathEffect::DashType fDashType;
|
| SkScalar fDashPhase;
|
| SkAutoSTArray<2, SkScalar> fIntervals;
|
| + typedef SkStrokeRec INHERITED;
|
| };
|
|
|
| #endif
|
|
|