diff options
author | reed <reed@chromium.org> | 2015-11-16 18:57:18 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-11-16 18:57:19 -0800 |
commit | a5d120769bbbaacea397d667d630a11b6a8ea97a (patch) | |
tree | 11e6840f5531ddea041e131f2e8d55f4d5a5711f /samplecode/SampleFatBits.cpp | |
parent | ee9fe1e6f39a37d522ea700873b0e5c08f0c6674 (diff) |
add caps option 'k' to FatBits
BUG=skia:
TBR=
Review URL: https://codereview.chromium.org/1452973002
Diffstat (limited to 'samplecode/SampleFatBits.cpp')
-rw-r--r-- | samplecode/SampleFatBits.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/samplecode/SampleFatBits.cpp b/samplecode/SampleFatBits.cpp index 0a47259d83..f3a2f6c54a 100644 --- a/samplecode/SampleFatBits.cpp +++ b/samplecode/SampleFatBits.cpp @@ -47,6 +47,7 @@ public: fUseClip = false; fRectAsOval = false; fUseTriangle = false; + fStrokeCap = SkPaint::kButt_Cap; fClipRect.set(2, 2, 11, 8 ); } @@ -102,6 +103,8 @@ public: void drawRect(SkCanvas* canvas, SkPoint pts[2]); void drawTriangle(SkCanvas* canvas, SkPoint pts[3]); + SkPaint::Cap fStrokeCap; + private: bool fAA, fGrid, fShowSkeleton, fUseGPU, fUseClip, fRectAsOval, fUseTriangle; Style fStyle; @@ -114,6 +117,7 @@ private: void setupPaint(SkPaint* paint) { bool aa = this->getAA(); + paint->setStrokeCap(fStrokeCap); switch (fStyle) { case kHair_Style: paint->setStrokeWidth(0); @@ -246,10 +250,14 @@ void FatBits::drawLineSkeleton(SkCanvas* max, const SkPoint pts[]) { SkPaint p; p.setStyle(SkPaint::kStroke_Style); p.setStrokeWidth(SK_Scalar1 * fZoom); + p.setStrokeCap(fStrokeCap); SkPath dst; p.getFillPath(path, &dst); path = dst; + path.moveTo(pts[0]); + path.lineTo(pts[1]); + if (fUseGPU) { path.moveTo(dst.getPoint(0)); path.lineTo(dst.getPoint(2)); @@ -430,6 +438,14 @@ protected: this->setStyle(FatBits::kStroke_Style); } return true; + case 'k': { + const SkPaint::Cap caps[] = { + SkPaint::kButt_Cap, SkPaint::kRound_Cap, SkPaint::kSquare_Cap, + }; + fFB.fStrokeCap = caps[(fFB.fStrokeCap + 1) % 3]; + this->inval(nullptr); + return true; + } break; case 'a': fFB.setAA(!fFB.getAA()); this->inval(nullptr); |