Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(227)

Side by Side Diff: samplecode/SampleVertices.cpp

Issue 96099: Whitespace fix: remove whitespace from the end of lines.
Patch Set: Created 16 years, 11 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « samplecode/SampleTypeface.cpp ('k') | samplecode/SampleXfermodes.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #include "SampleCode.h" 1 #include "SampleCode.h"
2 #include "SkView.h" 2 #include "SkView.h"
3 #include "SkCanvas.h" 3 #include "SkCanvas.h"
4 #include "SkGradientShader.h" 4 #include "SkGradientShader.h"
5 #include "SkGraphics.h" 5 #include "SkGraphics.h"
6 #include "SkImageDecoder.h" 6 #include "SkImageDecoder.h"
7 #include "SkPath.h" 7 #include "SkPath.h"
8 #include "SkRandom.h" 8 #include "SkRandom.h"
9 #include "SkRegion.h" 9 #include "SkRegion.h"
10 #include "SkShader.h" 10 #include "SkShader.h"
11 #include "SkUtils.h" 11 #include "SkUtils.h"
12 #include "SkXfermode.h" 12 #include "SkXfermode.h"
13 #include "SkColorPriv.h" 13 #include "SkColorPriv.h"
14 #include "SkColorFilter.h" 14 #include "SkColorFilter.h"
15 #include "SkTime.h" 15 #include "SkTime.h"
16 #include "SkTypeface.h" 16 #include "SkTypeface.h"
17 17
18 #include "SkOSFile.h" 18 #include "SkOSFile.h"
19 #include "SkStream.h" 19 #include "SkStream.h"
20 #include "SkNinePatch.h" 20 #include "SkNinePatch.h"
21 21
22 static SkShader* make_shader0(SkIPoint* size) { 22 static SkShader* make_shader0(SkIPoint* size) {
23 SkBitmap bm; 23 SkBitmap bm;
24 24
25 SkImageDecoder::DecodeFile("/skimages/logo.gif", &bm); 25 SkImageDecoder::DecodeFile("/skimages/logo.gif", &bm);
26 size->set(bm.width(), bm.height()); 26 size->set(bm.width(), bm.height());
27 return SkShader::CreateBitmapShader(bm, SkShader::kClamp_TileMode, 27 return SkShader::CreateBitmapShader(bm, SkShader::kClamp_TileMode,
28 SkShader::kClamp_TileMode); 28 SkShader::kClamp_TileMode);
29 } 29 }
30 30
31 static SkShader* make_shader1(const SkIPoint& size) { 31 static SkShader* make_shader1(const SkIPoint& size) {
32 SkPoint pts[] = { 0, 0, SkIntToScalar(size.fX), SkIntToScalar(size.fY) }; 32 SkPoint pts[] = { 0, 0, SkIntToScalar(size.fX), SkIntToScalar(size.fY) };
33 SkColor colors[] = { SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE, SK_ColorRED } ; 33 SkColor colors[] = { SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE, SK_ColorRED } ;
34 return SkGradientShader::CreateLinear(pts, colors, NULL, 34 return SkGradientShader::CreateLinear(pts, colors, NULL,
35 SK_ARRAY_COUNT(colors), SkShader::kMirror_TileMode, NULL); 35 SK_ARRAY_COUNT(colors), SkShader::kMirror_TileMode, NULL);
36 } 36 }
37 37
38 class VerticesView : public SkView { 38 class VerticesView : public SkView {
39 SkShader* fShader0; 39 SkShader* fShader0;
40 SkShader* fShader1; 40 SkShader* fShader1;
41 41
42 public: 42 public:
43 VerticesView() { 43 VerticesView() {
44 SkIPoint size; 44 SkIPoint size;
45 45
46 fShader0 = make_shader0(&size); 46 fShader0 = make_shader0(&size);
47 fShader1 = make_shader1(size); 47 fShader1 = make_shader1(size);
48 48
49 make_strip(&fRecs[0], size.fX, size.fY); 49 make_strip(&fRecs[0], size.fX, size.fY);
50 make_fan(&fRecs[1], size.fX, size.fY); 50 make_fan(&fRecs[1], size.fX, size.fY);
51 make_tris(&fRecs[2]); 51 make_tris(&fRecs[2]);
52 52
53 fScale = SK_Scalar1; 53 fScale = SK_Scalar1;
54 } 54 }
55 55
56 virtual ~VerticesView() { 56 virtual ~VerticesView() {
57 fShader0->safeUnref(); 57 fShader0->safeUnref();
58 fShader1->safeUnref(); 58 fShader1->safeUnref();
59 } 59 }
60 60
61 protected: 61 protected:
62 // overrides from SkEventSink 62 // overrides from SkEventSink
63 virtual bool onQuery(SkEvent* evt) { 63 virtual bool onQuery(SkEvent* evt) {
64 if (SampleCode::TitleQ(*evt)) 64 if (SampleCode::TitleQ(*evt))
65 { 65 {
66 SkString str("Vertices"); 66 SkString str("Vertices");
67 SampleCode::TitleR(evt, str.c_str()); 67 SampleCode::TitleR(evt, str.c_str());
68 return true; 68 return true;
69 } 69 }
70 return this->INHERITED::onQuery(evt); 70 return this->INHERITED::onQuery(evt);
71 } 71 }
72 72
73 void drawBG(SkCanvas* canvas) { 73 void drawBG(SkCanvas* canvas) {
74 canvas->drawColor(SK_ColorGRAY); 74 canvas->drawColor(SK_ColorGRAY);
75 } 75 }
76 76
77 SkScalar fScale; 77 SkScalar fScale;
78 78
79 virtual void onDraw(SkCanvas* canvas) { 79 virtual void onDraw(SkCanvas* canvas) {
80 this->drawBG(canvas); 80 this->drawBG(canvas);
81 81
82 SkPaint paint; 82 SkPaint paint;
83 paint.setDither(true); 83 paint.setDither(true);
84 paint.setFilterBitmap(true); 84 paint.setFilterBitmap(true);
85 85
86 for (int i = 0; i < SK_ARRAY_COUNT(fRecs); i++) { 86 for (int i = 0; i < SK_ARRAY_COUNT(fRecs); i++) {
87 canvas->save(); 87 canvas->save();
88 88
89 paint.setShader(NULL); 89 paint.setShader(NULL);
90 canvas->drawVertices(fRecs[i].fMode, fRecs[i].fCount, 90 canvas->drawVertices(fRecs[i].fMode, fRecs[i].fCount,
91 fRecs[i].fVerts, fRecs[i].fTexs, 91 fRecs[i].fVerts, fRecs[i].fTexs,
92 NULL, NULL, NULL, 0, paint); 92 NULL, NULL, NULL, 0, paint);
93 93
94 canvas->translate(SkIntToScalar(250), 0); 94 canvas->translate(SkIntToScalar(250), 0);
95 95
96 paint.setShader(fShader0); 96 paint.setShader(fShader0);
97 canvas->drawVertices(fRecs[i].fMode, fRecs[i].fCount, 97 canvas->drawVertices(fRecs[i].fMode, fRecs[i].fCount,
98 fRecs[i].fVerts, fRecs[i].fTexs, 98 fRecs[i].fVerts, fRecs[i].fTexs,
99 NULL, NULL, NULL, 0, paint); 99 NULL, NULL, NULL, 0, paint);
100 100
101 canvas->translate(SkIntToScalar(250), 0); 101 canvas->translate(SkIntToScalar(250), 0);
102 102
103 paint.setShader(fShader1); 103 paint.setShader(fShader1);
104 canvas->drawVertices(fRecs[i].fMode, fRecs[i].fCount, 104 canvas->drawVertices(fRecs[i].fMode, fRecs[i].fCount,
105 fRecs[i].fVerts, fRecs[i].fTexs, 105 fRecs[i].fVerts, fRecs[i].fTexs,
106 NULL, NULL, NULL, 0, paint); 106 NULL, NULL, NULL, 0, paint);
107 canvas->restore(); 107 canvas->restore();
108 108
109 canvas->translate(0, SkIntToScalar(250)); 109 canvas->translate(0, SkIntToScalar(250));
110 } 110 }
111 } 111 }
112 112
113 virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y) { 113 virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y) {
114 return new Click(this); 114 return new Click(this);
115 } 115 }
116 116
117 virtual bool onClick(Click* click) { 117 virtual bool onClick(Click* click) {
118 // fCurrX = click->fICurr.fX; 118 // fCurrX = click->fICurr.fX;
119 // fCurrY = click->fICurr.fY; 119 // fCurrY = click->fICurr.fY;
120 this->inval(NULL); 120 this->inval(NULL);
121 return true; 121 return true;
122 } 122 }
123 123
124 private: 124 private:
125 struct Rec { 125 struct Rec {
126 SkCanvas::VertexMode fMode; 126 SkCanvas::VertexMode fMode;
127 int fCount; 127 int fCount;
128 SkPoint* fVerts; 128 SkPoint* fVerts;
129 SkPoint* fTexs; 129 SkPoint* fTexs;
130 130
131 Rec() : fCount(0), fVerts(NULL), fTexs(NULL) {} 131 Rec() : fCount(0), fVerts(NULL), fTexs(NULL) {}
132 ~Rec() { delete[] fVerts; delete[] fTexs; } 132 ~Rec() { delete[] fVerts; delete[] fTexs; }
133 }; 133 };
134 134
135 void make_tris(Rec* rec) { 135 void make_tris(Rec* rec) {
136 int n = 10; 136 int n = 10;
137 SkRandom rand; 137 SkRandom rand;
138 138
139 rec->fMode = SkCanvas::kTriangles_VertexMode; 139 rec->fMode = SkCanvas::kTriangles_VertexMode;
140 rec->fCount = n * 3; 140 rec->fCount = n * 3;
141 rec->fVerts = new SkPoint[rec->fCount]; 141 rec->fVerts = new SkPoint[rec->fCount];
142 142
143 for (int i = 0; i < n; i++) { 143 for (int i = 0; i < n; i++) {
144 SkPoint* v = &rec->fVerts[i*3]; 144 SkPoint* v = &rec->fVerts[i*3];
145 for (int j = 0; j < 3; j++) { 145 for (int j = 0; j < 3; j++) {
146 v[j].set(rand.nextUScalar1() * 250, rand.nextUScalar1() * 250); 146 v[j].set(rand.nextUScalar1() * 250, rand.nextUScalar1() * 250);
147 } 147 }
148 } 148 }
149 } 149 }
150 150
151 void make_fan(Rec* rec, int texWidth, int texHeight) { 151 void make_fan(Rec* rec, int texWidth, int texHeight) {
152 const SkScalar tx = SkIntToScalar(texWidth); 152 const SkScalar tx = SkIntToScalar(texWidth);
153 const SkScalar ty = SkIntToScalar(texHeight); 153 const SkScalar ty = SkIntToScalar(texHeight);
154 const int n = 24; 154 const int n = 24;
155 155
156 rec->fMode = SkCanvas::kTriangleFan_VertexMode; 156 rec->fMode = SkCanvas::kTriangleFan_VertexMode;
157 rec->fCount = n + 2; 157 rec->fCount = n + 2;
158 rec->fVerts = new SkPoint[rec->fCount]; 158 rec->fVerts = new SkPoint[rec->fCount];
159 rec->fTexs = new SkPoint[rec->fCount]; 159 rec->fTexs = new SkPoint[rec->fCount];
160 160
161 SkPoint* v = rec->fVerts; 161 SkPoint* v = rec->fVerts;
162 SkPoint* t = rec->fTexs; 162 SkPoint* t = rec->fTexs;
163 163
164 v[0].set(0, 0); 164 v[0].set(0, 0);
165 t[0].set(0, 0); 165 t[0].set(0, 0);
166 for (int i = 0; i < n; i++) { 166 for (int i = 0; i < n; i++) {
167 SkScalar cos; 167 SkScalar cos;
168 SkScalar sin = SkScalarSinCos(SK_ScalarPI * 2 * i / n, &cos); 168 SkScalar sin = SkScalarSinCos(SK_ScalarPI * 2 * i / n, &cos);
169 v[i+1].set(cos, sin); 169 v[i+1].set(cos, sin);
170 t[i+1].set(i*tx/n, ty); 170 t[i+1].set(i*tx/n, ty);
171 } 171 }
172 v[n+1] = v[1]; 172 v[n+1] = v[1];
173 t[n+1].set(tx, ty); 173 t[n+1].set(tx, ty);
174 174
175 SkMatrix m; 175 SkMatrix m;
176 m.setScale(SkIntToScalar(100), SkIntToScalar(100)); 176 m.setScale(SkIntToScalar(100), SkIntToScalar(100));
177 m.postTranslate(SkIntToScalar(110), SkIntToScalar(110)); 177 m.postTranslate(SkIntToScalar(110), SkIntToScalar(110));
178 m.mapPoints(v, rec->fCount); 178 m.mapPoints(v, rec->fCount);
179 } 179 }
180 180
181 void make_strip(Rec* rec, int texWidth, int texHeight) { 181 void make_strip(Rec* rec, int texWidth, int texHeight) {
182 const SkScalar tx = SkIntToScalar(texWidth); 182 const SkScalar tx = SkIntToScalar(texWidth);
183 const SkScalar ty = SkIntToScalar(texHeight); 183 const SkScalar ty = SkIntToScalar(texHeight);
184 const int n = 24; 184 const int n = 24;
185 185
186 rec->fMode = SkCanvas::kTriangleStrip_VertexMode; 186 rec->fMode = SkCanvas::kTriangleStrip_VertexMode;
187 rec->fCount = 2 * (n + 1); 187 rec->fCount = 2 * (n + 1);
188 rec->fVerts = new SkPoint[rec->fCount]; 188 rec->fVerts = new SkPoint[rec->fCount];
189 rec->fTexs = new SkPoint[rec->fCount]; 189 rec->fTexs = new SkPoint[rec->fCount];
190 190
191 SkPoint* v = rec->fVerts; 191 SkPoint* v = rec->fVerts;
192 SkPoint* t = rec->fTexs; 192 SkPoint* t = rec->fTexs;
193 193
194 for (int i = 0; i < n; i++) { 194 for (int i = 0; i < n; i++) {
195 SkScalar cos; 195 SkScalar cos;
196 SkScalar sin = SkScalarSinCos(SK_ScalarPI * 2 * i / n, &cos); 196 SkScalar sin = SkScalarSinCos(SK_ScalarPI * 2 * i / n, &cos);
197 v[i*2 + 0].set(cos/2, sin/2); 197 v[i*2 + 0].set(cos/2, sin/2);
198 v[i*2 + 1].set(cos, sin); 198 v[i*2 + 1].set(cos, sin);
199 199
200 t[i*2 + 0].set(tx * i / n, ty); 200 t[i*2 + 0].set(tx * i / n, ty);
201 t[i*2 + 1].set(tx * i / n, 0); 201 t[i*2 + 1].set(tx * i / n, 0);
202 } 202 }
203 v[2*n + 0] = v[0]; 203 v[2*n + 0] = v[0];
204 v[2*n + 1] = v[1]; 204 v[2*n + 1] = v[1];
205 205
206 t[2*n + 0].set(tx, ty); 206 t[2*n + 0].set(tx, ty);
207 t[2*n + 1].set(tx, 0); 207 t[2*n + 1].set(tx, 0);
208 208
209 SkMatrix m; 209 SkMatrix m;
210 m.setScale(SkIntToScalar(100), SkIntToScalar(100)); 210 m.setScale(SkIntToScalar(100), SkIntToScalar(100));
211 m.postTranslate(SkIntToScalar(110), SkIntToScalar(110)); 211 m.postTranslate(SkIntToScalar(110), SkIntToScalar(110));
212 m.mapPoints(v, rec->fCount); 212 m.mapPoints(v, rec->fCount);
213 } 213 }
214 214
215 Rec fRecs[3]; 215 Rec fRecs[3];
216 216
217 typedef SkView INHERITED; 217 typedef SkView INHERITED;
218 }; 218 };
219 219
220 ////////////////////////////////////////////////////////////////////////////// 220 //////////////////////////////////////////////////////////////////////////////
221 221
222 static SkView* MyFactory() { return new VerticesView; } 222 static SkView* MyFactory() { return new VerticesView; }
223 static SkViewRegister reg(MyFactory); 223 static SkViewRegister reg(MyFactory);
224 224
OLDNEW
« no previous file with comments | « samplecode/SampleTypeface.cpp ('k') | samplecode/SampleXfermodes.cpp » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b