drawPoints with maskfilter fix

Fix: just check for maskfilter, and reject fast-cases if we have one.

New GM: points_maskfilter

before: draw red squares with no blurs, but red circles had blurs

after: both sets have the blur (i.e. the maskfilter)

Bug: skia:12435
Change-Id: I460908818d2edf8c6065db2fe99a9df0e7ffc543
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/448266
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Reed <reed@google.com>
diff --git a/gm/points.cpp b/gm/points.cpp
index 324cb0a..d81e8f1 100644
--- a/gm/points.cpp
+++ b/gm/points.cpp
@@ -74,9 +74,40 @@
 private:
     using INHERITED = GM;
 };
-
-//////////////////////////////////////////////////////////////////////////////
-
 DEF_GM( return new PointsGM; )
-
 }  // namespace skiagm
+
+#include "include/core/SkMaskFilter.h"
+
+DEF_SIMPLE_GM(points_maskfilter, canvas, 512, 256) {
+    constexpr int N = 30;
+    SkPoint pts[N];
+
+    SkRandom rand;
+    for (SkPoint& p : pts) {
+        p.fX = rand.nextF() * 220 + 18;
+        p.fY = rand.nextF() * 220 + 18;
+    }
+
+    auto mf = SkMaskFilter::MakeBlur(kNormal_SkBlurStyle, 6);
+    const SkPaint::Cap caps[] = { SkPaint::kSquare_Cap, SkPaint::kRound_Cap };
+
+    SkPaint paint;
+    paint.setAntiAlias(true);
+    paint.setStroke(true);
+    paint.setStrokeWidth(10);
+
+    for (auto cap : caps) {
+        paint.setStrokeCap(cap);
+
+        paint.setMaskFilter(mf);
+        paint.setColor(SK_ColorBLACK);
+        canvas->drawPoints(SkCanvas::kPoints_PointMode, N, pts, paint);
+
+        paint.setMaskFilter(nullptr);
+        paint.setColor(SK_ColorRED);
+        canvas->drawPoints(SkCanvas::kPoints_PointMode, N, pts, paint);
+
+        canvas->translate(256, 0);
+    }
+}