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

Side by Side Diff: gm/pictureshader.cpp

Issue 1793303002: Reland of "more shader-->sp conversions (patchset #5 id:80001 of https://codereview.chromium… (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: make pictureRef a value, so its clearer what's going on Created 4 years, 9 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 | « gm/pictureimagegenerator.cpp ('k') | gm/pictureshadertile.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 /* 1 /*
2 * Copyright 2014 Google Inc. 2 * Copyright 2014 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 "gm.h" 8 #include "gm.h"
9 9
10 #include "SkBitmap.h" 10 #include "SkBitmap.h"
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 143
144 SkPaint paint; 144 SkPaint paint;
145 paint.setStyle(SkPaint::kFill_Style); 145 paint.setStyle(SkPaint::kFill_Style);
146 paint.setColor(sk_tool_utils::color_to_565(SK_ColorLTGRAY)); 146 paint.setColor(sk_tool_utils::color_to_565(SK_ColorLTGRAY));
147 147
148 canvas->save(); 148 canvas->save();
149 canvas->concat(matrix); 149 canvas->concat(matrix);
150 canvas->drawRect(SkRect::MakeWH(fSceneSize, fSceneSize), paint); 150 canvas->drawRect(SkRect::MakeWH(fSceneSize, fSceneSize), paint);
151 canvas->drawRect(SkRect::MakeXYWH(fSceneSize * 1.1f, 0, fSceneSize, fSce neSize), paint); 151 canvas->drawRect(SkRect::MakeXYWH(fSceneSize * 1.1f, 0, fSceneSize, fSce neSize), paint);
152 152
153 SkAutoTUnref<SkShader> pictureShader( 153 paint.setShader(SkShader::MakePictureShader(fPicture, kTileConfigs[tileM ode].tmx,
154 SkShader::CreatePictureShader(fPicture, kTileConfigs[tileMode].t mx, 154 kTileConfigs[tileMode].tmy, &localMatrix,
155 kTileConfigs[tileMode].tmy, &local Matrix, nullptr)); 155 nullptr));
156 paint.setShader(pictureShader.get());
157 canvas->drawRect(SkRect::MakeWH(fSceneSize, fSceneSize), paint); 156 canvas->drawRect(SkRect::MakeWH(fSceneSize, fSceneSize), paint);
158 157
159 canvas->translate(fSceneSize * 1.1f, 0); 158 canvas->translate(fSceneSize * 1.1f, 0);
160 159
161 SkAutoTUnref<SkShader> bitmapShader(SkShader::CreateBitmapShader( 160 paint.setShader(SkShader::MakeBitmapShader(fBitmap,
162 fBitmap, 161 kTileConfigs[tileMode].tmx,
163 kTileConfigs[tileMode].tmx, 162 kTileConfigs[tileMode].tmy,
164 kTileConfigs[tileMode].tmy, 163 &localMatrix));
165 &localMatrix));
166 paint.setShader(bitmapShader.get());
167 canvas->drawRect(SkRect::MakeWH(fSceneSize, fSceneSize), paint); 164 canvas->drawRect(SkRect::MakeWH(fSceneSize, fSceneSize), paint);
168 165
169 canvas->restore(); 166 canvas->restore();
170 } 167 }
171 168
172 SkScalar fTileSize; 169 SkScalar fTileSize;
173 SkScalar fSceneSize; 170 SkScalar fSceneSize;
174 171
175 SkAutoTUnref<SkPicture> fPicture; 172 sk_sp<SkPicture> fPicture;
176 SkBitmap fBitmap; 173 SkBitmap fBitmap;
177 174
178 typedef GM INHERITED; 175 typedef GM INHERITED;
179 }; 176 };
180 177
181 DEF_GM(return new PictureShaderGM(50, 100);) 178 DEF_GM(return new PictureShaderGM(50, 100);)
182 179
183 DEF_SIMPLE_GM(tiled_picture_shader, canvas, 400, 400) { 180 DEF_SIMPLE_GM(tiled_picture_shader, canvas, 400, 400) {
184 // https://code.google.com/p/skia/issues/detail?id=3398 181 // https://code.google.com/p/skia/issues/detail?id=3398
185 SkRect tile = SkRect::MakeWH(100, 100); 182 SkRect tile = SkRect::MakeWH(100, 100);
186 183
187 SkPictureRecorder recorder; 184 SkPictureRecorder recorder;
188 SkCanvas* c = recorder.beginRecording(tile); 185 SkCanvas* c = recorder.beginRecording(tile);
189 186
190 SkRect r = tile; 187 SkRect r = tile;
191 r.inset(4, 4); 188 r.inset(4, 4);
192 SkPaint p; 189 SkPaint p;
193 p.setColor(sk_tool_utils::color_to_565(0xFF303F9F)); // dark blue 190 p.setColor(sk_tool_utils::color_to_565(0xFF303F9F)); // dark blue
194 c->drawRect(r, p); 191 c->drawRect(r, p);
195 p.setColor(sk_tool_utils::color_to_565(0xFFC5CAE9)); // light blue 192 p.setColor(sk_tool_utils::color_to_565(0xFFC5CAE9)); // light blue
196 p.setStrokeWidth(10); 193 p.setStrokeWidth(10);
197 c->drawLine(20, 20, 80, 80, p); 194 c->drawLine(20, 20, 80, 80, p);
198 195
199 SkAutoTUnref<SkPicture> picture(recorder.endRecording()); 196 sk_sp<SkPicture> picture(recorder.endRecording());
200 SkAutoTUnref<SkShader> shader( 197 sk_sp<SkShader> shader(SkShader::MakePictureShader(picture, SkShader::kRepea t_TileMode,
201 SkShader::CreatePictureShader(picture.get(), SkShader::kRepeat_TileM ode, 198 SkShader::kRepeat_TileMod e,
202 SkShader::kRepeat_TileMode, nullptr, n ullptr)); 199 nullptr, nullptr));
203 200
204 p.setColor(sk_tool_utils::color_to_565(0xFF8BC34A)); // green 201 p.setColor(sk_tool_utils::color_to_565(0xFF8BC34A)); // green
205 canvas->drawPaint(p); 202 canvas->drawPaint(p);
206 203
207 canvas->clipRect(SkRect::MakeXYWH(0, 0, 400, 350)); 204 canvas->clipRect(SkRect::MakeXYWH(0, 0, 400, 350));
208 p.setColor(sk_tool_utils::color_to_565(0xFFB6B6B6)); // gray 205 p.setColor(sk_tool_utils::color_to_565(0xFFB6B6B6)); // gray
209 canvas->drawPaint(p); 206 canvas->drawPaint(p);
210 p.setShader(shader.get()); 207 p.setShader(shader.get());
211 208
212 canvas->drawPaint(p); 209 canvas->drawPaint(p);
213 } 210 }
OLDNEW
« no previous file with comments | « gm/pictureimagegenerator.cpp ('k') | gm/pictureshadertile.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698