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

Side by Side Diff: samplecode/SampleEmptyPath.cpp

Issue 1317693011: remove duplicated sample (already have a gm) (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 3 months 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 | « gyp/SampleApp.gyp ('k') | 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
(Empty)
1 /*
2 * Copyright 2011 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8 #include "SampleCode.h"
9 #include "SkView.h"
10 #include "SkCanvas.h"
11 #include "SkPaint.h"
12 #include "SkPath.h"
13 #include "SkRandom.h"
14 #include "SkString.h"
15
16 class EmptyPathView : public SampleView {
17 public:
18 EmptyPathView() {}
19
20 protected:
21 // overrides from SkEventSink
22 virtual bool onQuery(SkEvent* evt) {
23 if (SampleCode::TitleQ(*evt)) {
24 SampleCode::TitleR(evt, "EmptyPath");
25 return true;
26 }
27 return this->INHERITED::onQuery(evt);
28 }
29
30 void drawEmpty(SkCanvas* canvas,
31 SkColor color,
32 const SkRect& clip,
33 SkPaint::Style style,
34 SkPath::FillType fill) {
35 SkPath path;
36 path.setFillType(fill);
37 SkPaint paint;
38 paint.setColor(color);
39 paint.setStyle(style);
40 canvas->save();
41 canvas->clipRect(clip);
42 canvas->drawPath(path, paint);
43 canvas->restore();
44 }
45
46 virtual void onDrawContent(SkCanvas* canvas) {
47 struct FillAndName {
48 SkPath::FillType fFill;
49 const char* fName;
50 };
51 static const FillAndName gFills[] = {
52 {SkPath::kWinding_FillType, "Winding"},
53 {SkPath::kEvenOdd_FillType, "Even / Odd"},
54 {SkPath::kInverseWinding_FillType, "Inverse Winding"},
55 {SkPath::kInverseEvenOdd_FillType, "Inverse Even / Odd"},
56 };
57 struct StyleAndName {
58 SkPaint::Style fStyle;
59 const char* fName;
60 };
61 static const StyleAndName gStyles[] = {
62 {SkPaint::kFill_Style, "Fill"},
63 {SkPaint::kStroke_Style, "Stroke"},
64 {SkPaint::kStrokeAndFill_Style, "Stroke And Fill"},
65 };
66
67 SkPaint titlePaint;
68 titlePaint.setColor(SK_ColorBLACK);
69 titlePaint.setAntiAlias(true);
70 titlePaint.setLCDRenderText(true);
71 titlePaint.setTextSize(24 * SK_Scalar1);
72 const char title[] = "Empty Paths Drawn Into Rectangle Clips With Indica ted Style and Fill";
73 canvas->drawText(title, strlen(title),
74 40 * SK_Scalar1,
75 100*SK_Scalar1,
76 titlePaint);
77
78 SkRandom rand;
79 SkRect rect = SkRect::MakeWH(125*SK_Scalar1, 100*SK_Scalar1);
80 int i = 0;
81 canvas->save();
82 canvas->translate(80 * SK_Scalar1, 0);
83 canvas->save();
84 for (size_t style = 0; style < SK_ARRAY_COUNT(gStyles); ++style) {
85 for (size_t fill = 0; fill < SK_ARRAY_COUNT(gFills); ++fill) {
86 if (0 == i % 4) {
87 canvas->restore();
88 canvas->translate(0, rect.height() + 50 * SK_Scalar1);
89 canvas->save();
90 } else {
91 canvas->translate(rect.width() + 100 * SK_Scalar1, 0);
92 }
93 ++i;
94
95
96 SkColor color = rand.nextU();
97 color = 0xff000000| color; // force solid
98 this->drawEmpty(canvas, color, rect,
99 gStyles[style].fStyle, gFills[fill].fFill);
100
101 SkPaint rectPaint;
102 rectPaint.setColor(SK_ColorBLACK);
103 rectPaint.setStyle(SkPaint::kStroke_Style);
104 rectPaint.setStrokeWidth(-1);
105 rectPaint.setAntiAlias(true);
106 canvas->drawRect(rect, rectPaint);
107
108 SkString label;
109 label.appendf("%s, %s", gStyles[style].fName, gFills[fill].fName );
110
111 SkPaint labelPaint;
112 labelPaint.setColor(color);
113 labelPaint.setAntiAlias(true);
114 labelPaint.setLCDRenderText(true);
115 canvas->drawText(label.c_str(), label.size(),
116 0, rect.height() + 15 * SK_Scalar1,
117 labelPaint);
118 }
119 }
120 canvas->restore();
121 canvas->restore();
122 }
123
124 private:
125 typedef SampleView INHERITED;
126 };
127
128 //////////////////////////////////////////////////////////////////////////////
129
130 static SkView* MyFactory() { return new EmptyPathView; }
131 static SkViewRegister reg(MyFactory);
OLDNEW
« no previous file with comments | « gyp/SampleApp.gyp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698