Add new GM for occluded blurmask filter draws

This splits out just the GM portion of https://codereview.chromium.org/2201993003/ (Add GM to test out blurmaskfilter occluders) which included some API changes

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2214033002

Review-Url: https://codereview.chromium.org/2214033002
diff --git a/tools/sk_tool_utils.cpp b/tools/sk_tool_utils.cpp
index 38880f8..0978058 100644
--- a/tools/sk_tool_utils.cpp
+++ b/tools/sk_tool_utils.cpp
@@ -513,4 +513,36 @@
     return SkRect::MakeLTRB(newL, newT, newR, newB);
 }
 
+// The widest inset rect
+SkRect compute_widest_occluder(const SkRRect& rr) {
+    const SkRect& r = rr.getBounds();
+
+    const SkVector& ul = rr.radii(SkRRect::kUpperLeft_Corner);
+    const SkVector& ur = rr.radii(SkRRect::kUpperRight_Corner);
+    const SkVector& lr = rr.radii(SkRRect::kLowerRight_Corner);
+    const SkVector& ll = rr.radii(SkRRect::kLowerLeft_Corner);
+
+    SkScalar maxT = SkTMax(ul.fY, ur.fY);
+    SkScalar maxB = SkTMax(ll.fY, lr.fY);
+
+    return SkRect::MakeLTRB(r.fLeft, r.fTop + maxT, r.fRight, r.fBottom - maxB);
+
+}
+
+// The tallest inset rect
+SkRect compute_tallest_occluder(const SkRRect& rr) {
+    const SkRect& r = rr.getBounds();
+
+    const SkVector& ul = rr.radii(SkRRect::kUpperLeft_Corner);
+    const SkVector& ur = rr.radii(SkRRect::kUpperRight_Corner);
+    const SkVector& lr = rr.radii(SkRRect::kLowerRight_Corner);
+    const SkVector& ll = rr.radii(SkRRect::kLowerLeft_Corner);
+
+    SkScalar maxL = SkTMax(ul.fX, ll.fX);
+    SkScalar maxR = SkTMax(ur.fX, lr.fX);
+
+    return SkRect::MakeLTRB(r.fLeft + maxL, r.fTop, r.fRight - maxR, r.fBottom);
+}
+
+
 }  // namespace sk_tool_utils