From fa8d49adfa8d592219e9ac999c54e87969aa817d Mon Sep 17 00:00:00 2001 From: Florin Malita Date: Fri, 29 Dec 2017 11:52:44 -0500 Subject: [sksg] Refactor stroke logic Instead of a specialized node, hoist attributes to base class. TBR= Change-Id: I4fa5a24dfc899307a8603577738972ebd32f57f5 Reviewed-on: https://skia-review.googlesource.com/89903 Reviewed-by: Florin Malita Commit-Queue: Florin Malita --- experimental/sksg/SkSGPaintNode.h | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'experimental/sksg/SkSGPaintNode.h') diff --git a/experimental/sksg/SkSGPaintNode.h b/experimental/sksg/SkSGPaintNode.h index d0a7787bc8..534ad551ae 100644 --- a/experimental/sksg/SkSGPaintNode.h +++ b/experimental/sksg/SkSGPaintNode.h @@ -22,18 +22,31 @@ namespace sksg { */ class PaintNode : public Node { public: - const SkPaint& makePaint(); + SG_ATTRIBUTE(AntiAlias , bool , fAntiAlias ) + SG_ATTRIBUTE(StrokeWidth, SkScalar , fStrokeWidth) + SG_ATTRIBUTE(StrokeMiter, SkScalar , fStrokeMiter) + SG_ATTRIBUTE(Style , SkPaint::Style, fStyle ) + SG_ATTRIBUTE(StrokeJoin , SkPaint::Join , fStrokeJoin ) + SG_ATTRIBUTE(StrokeCap , SkPaint::Cap , fStrokeCap ) + protected: PaintNode(); - virtual SkPaint onMakePaint() const = 0; + virtual void onApplyToPaint(SkPaint*) const = 0; void onRevalidate(InvalidationController*, const SkMatrix&) override; private: - SkPaint fPaint; + SkPaint fPaint; + + SkScalar fStrokeWidth = 1, + fStrokeMiter = 4; + bool fAntiAlias = false; + SkPaint::Style fStyle = SkPaint::kFill_Style; + SkPaint::Join fStrokeJoin = SkPaint::kMiter_Join; + SkPaint::Cap fStrokeCap = SkPaint::kButt_Cap; typedef Node INHERITED; }; -- cgit v1.2.3