34 for (
SkScalar len = 1; len < kMaxDashLen; len *= kDashGrowth) {
67 const SkVector radii[4] = { {15, 15}, {15, 15}, {15, 15}, {15, 15}};
87 inline static constexpr int kImageWidth = 1200;
88 inline static constexpr int kImageHeight = 600;
90 SkPaint fDashPaint, fPointsPaint;
105 for (
unsigned i = 0; i < 8; ++i) {
106 const SkPath path = makePath(fRect, dir, i);
109 const int n = path.countPoints();
111 path.getPoints(
points.get(), n);
118 using INHERITED =
GM;
121DEF_GM(
return new ContourStartGM(); )
static const int points[]
void drawPoints(PointMode mode, size_t count, const SkPoint pts[], const SkPaint &paint)
void translate(SkScalar dx, SkScalar dy)
void drawPath(const SkPath &path, const SkPaint &paint)
@ kPoints_PointMode
draw each point separately
static sk_sp< SkPathEffect > Make(const SkScalar intervals[], int count, SkScalar phase)
void setStyle(Style style)
void setColor(SkColor color)
void setAntiAlias(bool aa)
@ kStroke_Style
set to stroke geometry
void setPathEffect(sk_sp< SkPathEffect > pathEffect)
void setStrokeWidth(SkScalar width)
static SkPath RRect(const SkRRect &, SkPathDirection dir=SkPathDirection::kCW)
static SkPath Rect(const SkRect &, SkPathDirection=SkPathDirection::kCW, unsigned startIndex=0)
static SkPath Oval(const SkRect &, SkPathDirection=SkPathDirection::kCW)
void setOval(const SkRect &oval)
void setRectRadii(const SkRect &rect, const SkVector radii[4])
void setRect(const SkRect &rect)
void onDraw(SkCanvas *canvas) override
SkString getName() const override
SkISize getISize() override
void onOnceBeforeDraw() override
GM(SkColor backgroundColor=SK_ColorWHITE)
static constexpr SkISize Make(int32_t w, int32_t h)
static constexpr SkRect MakeLTRB(float l, float t, float r, float b)