Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(169)

Side by Side Diff: samplecode/SampleFatBits.cpp

Issue 1452973002: add caps option 'k' to FatBits (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2012 Google Inc. 2 * Copyright 2012 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "sk_tool_utils.h" 8 #include "sk_tool_utils.h"
9 #include "SampleCode.h" 9 #include "SampleCode.h"
10 #include "SkView.h" 10 #include "SkView.h"
(...skipping 29 matching lines...) Expand all
40 public: 40 public:
41 FatBits() { 41 FatBits() {
42 fAA = false; 42 fAA = false;
43 fStyle = kHair_Style; 43 fStyle = kHair_Style;
44 fGrid = false; 44 fGrid = false;
45 fShowSkeleton = true; 45 fShowSkeleton = true;
46 fUseGPU = false; 46 fUseGPU = false;
47 fUseClip = false; 47 fUseClip = false;
48 fRectAsOval = false; 48 fRectAsOval = false;
49 fUseTriangle = false; 49 fUseTriangle = false;
50 fStrokeCap = SkPaint::kButt_Cap;
50 51
51 fClipRect.set(2, 2, 11, 8 ); 52 fClipRect.set(2, 2, 11, 8 );
52 } 53 }
53 54
54 int getZoom() const { return fZoom; } 55 int getZoom() const { return fZoom; }
55 56
56 bool getAA() const { return fAA; } 57 bool getAA() const { return fAA; }
57 void setAA(bool aa) { fAA = aa; } 58 void setAA(bool aa) { fAA = aa; }
58 59
59 bool getGrid() const { return fGrid; } 60 bool getGrid() const { return fGrid; }
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 info = info.makeWH(width * zoom, height * zoom); 96 info = info.makeWH(width * zoom, height * zoom);
96 fMaxSurface.reset(SkSurface::NewRaster(info)); 97 fMaxSurface.reset(SkSurface::NewRaster(info));
97 } 98 }
98 99
99 void drawBG(SkCanvas*); 100 void drawBG(SkCanvas*);
100 void drawFG(SkCanvas*); 101 void drawFG(SkCanvas*);
101 void drawLine(SkCanvas*, SkPoint pts[2]); 102 void drawLine(SkCanvas*, SkPoint pts[2]);
102 void drawRect(SkCanvas* canvas, SkPoint pts[2]); 103 void drawRect(SkCanvas* canvas, SkPoint pts[2]);
103 void drawTriangle(SkCanvas* canvas, SkPoint pts[3]); 104 void drawTriangle(SkCanvas* canvas, SkPoint pts[3]);
104 105
106 SkPaint::Cap fStrokeCap;
107
105 private: 108 private:
106 bool fAA, fGrid, fShowSkeleton, fUseGPU, fUseClip, fRectAsOval, fUseTriangle ; 109 bool fAA, fGrid, fShowSkeleton, fUseGPU, fUseClip, fRectAsOval, fUseTriangle ;
107 Style fStyle; 110 Style fStyle;
108 int fW, fH, fZoom; 111 int fW, fH, fZoom;
109 SkMatrix fMatrix, fInverse; 112 SkMatrix fMatrix, fInverse;
110 SkRect fBounds, fClipRect; 113 SkRect fBounds, fClipRect;
111 SkAutoTUnref<SkShader> fShader; 114 SkAutoTUnref<SkShader> fShader;
112 SkAutoTUnref<SkSurface> fMinSurface; 115 SkAutoTUnref<SkSurface> fMinSurface;
113 SkAutoTUnref<SkSurface> fMaxSurface; 116 SkAutoTUnref<SkSurface> fMaxSurface;
114 117
115 void setupPaint(SkPaint* paint) { 118 void setupPaint(SkPaint* paint) {
116 bool aa = this->getAA(); 119 bool aa = this->getAA();
120 paint->setStrokeCap(fStrokeCap);
117 switch (fStyle) { 121 switch (fStyle) {
118 case kHair_Style: 122 case kHair_Style:
119 paint->setStrokeWidth(0); 123 paint->setStrokeWidth(0);
120 break; 124 break;
121 case kStroke_Style: 125 case kStroke_Style:
122 paint->setStrokeWidth(SK_Scalar1); 126 paint->setStrokeWidth(SK_Scalar1);
123 break; 127 break;
124 } 128 }
125 paint->setAntiAlias(aa); 129 paint->setAntiAlias(aa);
126 } 130 }
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 p.setStrokeWidth(SK_Scalar1 * fZoom); 243 p.setStrokeWidth(SK_Scalar1 * fZoom);
240 SkPath dst; 244 SkPath dst;
241 p.getFillPath(path, &dst); 245 p.getFillPath(path, &dst);
242 path.addPath(dst); 246 path.addPath(dst);
243 } 247 }
244 break; 248 break;
245 case kStroke_Style: { 249 case kStroke_Style: {
246 SkPaint p; 250 SkPaint p;
247 p.setStyle(SkPaint::kStroke_Style); 251 p.setStyle(SkPaint::kStroke_Style);
248 p.setStrokeWidth(SK_Scalar1 * fZoom); 252 p.setStrokeWidth(SK_Scalar1 * fZoom);
253 p.setStrokeCap(fStrokeCap);
249 SkPath dst; 254 SkPath dst;
250 p.getFillPath(path, &dst); 255 p.getFillPath(path, &dst);
251 path = dst; 256 path = dst;
252 257
258 path.moveTo(pts[0]);
259 path.lineTo(pts[1]);
260
253 if (fUseGPU) { 261 if (fUseGPU) {
254 path.moveTo(dst.getPoint(0)); 262 path.moveTo(dst.getPoint(0));
255 path.lineTo(dst.getPoint(2)); 263 path.lineTo(dst.getPoint(2));
256 } 264 }
257 } break; 265 } break;
258 } 266 }
259 max->drawPath(path, paint); 267 max->drawPath(path, paint);
260 } 268 }
261 269
262 void FatBits::drawLine(SkCanvas* canvas, SkPoint pts[]) { 270 void FatBits::drawLine(SkCanvas* canvas, SkPoint pts[]) {
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 fFB.setGrid(!fFB.getGrid()); 431 fFB.setGrid(!fFB.getGrid());
424 this->inval(nullptr); 432 this->inval(nullptr);
425 return true; 433 return true;
426 case 's': 434 case 's':
427 if (FatBits::kStroke_Style == fFB.getStyle()) { 435 if (FatBits::kStroke_Style == fFB.getStyle()) {
428 this->setStyle(FatBits::kHair_Style); 436 this->setStyle(FatBits::kHair_Style);
429 } else { 437 } else {
430 this->setStyle(FatBits::kStroke_Style); 438 this->setStyle(FatBits::kStroke_Style);
431 } 439 }
432 return true; 440 return true;
441 case 'k': {
442 const SkPaint::Cap caps[] = {
443 SkPaint::kButt_Cap, SkPaint::kRound_Cap, SkPaint::kSquar e_Cap,
444 };
445 fFB.fStrokeCap = caps[(fFB.fStrokeCap + 1) % 3];
446 this->inval(nullptr);
447 return true;
448 } break;
433 case 'a': 449 case 'a':
434 fFB.setAA(!fFB.getAA()); 450 fFB.setAA(!fFB.getAA());
435 this->inval(nullptr); 451 this->inval(nullptr);
436 return true; 452 return true;
437 case 'w': 453 case 'w':
438 fFB.setShowSkeleton(!fFB.getShowSkeleton()); 454 fFB.setShowSkeleton(!fFB.getShowSkeleton());
439 this->inval(nullptr); 455 this->inval(nullptr);
440 return true; 456 return true;
441 case 'g': 457 case 'g':
442 fFB.setUseGPU(!fFB.getUseGPU()); 458 fFB.setUseGPU(!fFB.getUseGPU());
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
510 526
511 private: 527 private:
512 528
513 typedef SampleView INHERITED; 529 typedef SampleView INHERITED;
514 }; 530 };
515 531
516 ////////////////////////////////////////////////////////////////////////////// 532 //////////////////////////////////////////////////////////////////////////////
517 533
518 static SkView* MyFactory() { return new DrawLineView; } 534 static SkView* MyFactory() { return new DrawLineView; }
519 static SkViewRegister reg(MyFactory); 535 static SkViewRegister reg(MyFactory);
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698