diff options
Diffstat (limited to 'gm/strokes.cpp')
-rw-r--r-- | gm/strokes.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/gm/strokes.cpp b/gm/strokes.cpp index f2abb0b7dd..261db9c69d 100644 --- a/gm/strokes.cpp +++ b/gm/strokes.cpp @@ -236,6 +236,38 @@ DEF_SIMPLE_GM(zerolinestroke, canvas, 90, 120) { canvas->drawPath(path, paint); } +DEF_SIMPLE_GM(quadcap, canvas, 200, 200) { + SkPaint p; + p.setAntiAlias(true); + p.setStyle(SkPaint::kStroke_Style); + p.setStrokeWidth(0); + SkPath path; + SkPoint pts[] = {{105.738571f,13.126318f}, + {105.738571f,13.126318f}, + {123.753784f,1.f}}; + SkVector tangent = pts[1] - pts[2]; + tangent.normalize(); + SkPoint pts2[3]; + memcpy(pts2, pts, sizeof(pts)); + const SkScalar capOutset = SK_ScalarPI / 8; + pts2[0].fX += tangent.fX * capOutset; + pts2[0].fY += tangent.fY * capOutset; + pts2[1].fX += tangent.fX * capOutset; + pts2[1].fY += tangent.fY * capOutset; + pts2[2].fX += -tangent.fX * capOutset; + pts2[2].fY += -tangent.fY * capOutset; + path.moveTo(pts2[0]); + path.quadTo(pts2[1], pts2[2]); + canvas->drawPath(path, p); + + path.reset(); + path.moveTo(pts[0]); + path.quadTo(pts[1], pts[2]); + p.setStrokeCap(SkPaint::kRound_Cap); + canvas->translate(30, 0); + canvas->drawPath(path, p); +} + class Strokes2GM : public skiagm::GM { SkPath fPath; protected: |