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

Side by Side Diff: gm/image_pict.cpp

Issue 1810813003: update callsites for Make image factories (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: start to take advantage of sk_sp drawImage 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/image.cpp ('k') | gm/image_shader.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 2015 Google Inc. 2 * Copyright 2015 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 #include "SkCanvas.h" 9 #include "SkCanvas.h"
10 #include "SkImage.h" 10 #include "SkImage.h"
(...skipping 18 matching lines...) Expand all
29 paint.setColor(SK_ColorBLUE); 29 paint.setColor(SK_ColorBLUE);
30 canvas->drawOval(bounds, paint); 30 canvas->drawOval(bounds, paint);
31 } 31 }
32 32
33 /* 33 /*
34 * Exercise drawing pictures inside an image, showing that the image version is pixelated 34 * Exercise drawing pictures inside an image, showing that the image version is pixelated
35 * (correctly) when it is inside an image. 35 * (correctly) when it is inside an image.
36 */ 36 */
37 class ImagePictGM : public skiagm::GM { 37 class ImagePictGM : public skiagm::GM {
38 SkAutoTUnref<SkPicture> fPicture; 38 SkAutoTUnref<SkPicture> fPicture;
39 SkAutoTUnref<SkImage> fImage0; 39 sk_sp<SkImage> fImage0;
40 SkAutoTUnref<SkImage> fImage1; 40 sk_sp<SkImage> fImage1;
41 public: 41 public:
42 ImagePictGM() {} 42 ImagePictGM() {}
43 43
44 protected: 44 protected:
45 SkString onShortName() override { 45 SkString onShortName() override {
46 return SkString("image-picture"); 46 return SkString("image-picture");
47 } 47 }
48 48
49 SkISize onISize() override { 49 SkISize onISize() override {
50 return SkISize::Make(850, 450); 50 return SkISize::Make(850, 450);
51 } 51 }
52 52
53 void onOnceBeforeDraw() override { 53 void onOnceBeforeDraw() override {
54 const SkRect bounds = SkRect::MakeXYWH(100, 100, 100, 100); 54 const SkRect bounds = SkRect::MakeXYWH(100, 100, 100, 100);
55 SkPictureRecorder recorder; 55 SkPictureRecorder recorder;
56 draw_something(recorder.beginRecording(bounds), bounds); 56 draw_something(recorder.beginRecording(bounds), bounds);
57 fPicture.reset(recorder.endRecording()); 57 fPicture.reset(recorder.endRecording());
58 58
59 // extract enough just for the oval. 59 // extract enough just for the oval.
60 const SkISize size = SkISize::Make(100, 100); 60 const SkISize size = SkISize::Make(100, 100);
61 61
62 SkMatrix matrix; 62 SkMatrix matrix;
63 matrix.setTranslate(-100, -100); 63 matrix.setTranslate(-100, -100);
64 fImage0.reset(SkImage::NewFromPicture(fPicture, size, &matrix, nullptr)) ; 64 fImage0 = SkImage::MakeFromPicture(sk_ref_sp(fPicture.get()), size, &mat rix, nullptr);
65 matrix.postTranslate(-50, -50); 65 matrix.postTranslate(-50, -50);
66 matrix.postRotate(45); 66 matrix.postRotate(45);
67 matrix.postTranslate(50, 50); 67 matrix.postTranslate(50, 50);
68 fImage1.reset(SkImage::NewFromPicture(fPicture, size, &matrix, nullptr)) ; 68 fImage1 = SkImage::MakeFromPicture(sk_ref_sp(fPicture.get()), size, &mat rix, nullptr);
69 } 69 }
70 70
71 void drawSet(SkCanvas* canvas) const { 71 void drawSet(SkCanvas* canvas) const {
72 SkMatrix matrix = SkMatrix::MakeTrans(-100, -100); 72 SkMatrix matrix = SkMatrix::MakeTrans(-100, -100);
73 canvas->drawPicture(fPicture, &matrix, nullptr); 73 canvas->drawPicture(fPicture, &matrix, nullptr);
74 canvas->drawImage(fImage0, 150, 0); 74 canvas->drawImage(fImage0.get(), 150, 0);
75 canvas->drawImage(fImage1, 300, 0); 75 canvas->drawImage(fImage1.get(), 300, 0);
76 } 76 }
77 77
78 void onDraw(SkCanvas* canvas) override { 78 void onDraw(SkCanvas* canvas) override {
79 canvas->translate(20, 20); 79 canvas->translate(20, 20);
80 80
81 this->drawSet(canvas); 81 this->drawSet(canvas);
82 82
83 canvas->save(); 83 canvas->save();
84 canvas->translate(0, 130); 84 canvas->translate(0, 130);
85 canvas->scale(0.25f, 0.25f); 85 canvas->scale(0.25f, 0.25f);
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 public: 209 public:
210 TextureGenerator(GrContext* ctx, const SkImageInfo& info, SkPicture* pic) 210 TextureGenerator(GrContext* ctx, const SkImageInfo& info, SkPicture* pic)
211 : SkImageGenerator(info) 211 : SkImageGenerator(info)
212 , fCtx(SkRef(ctx)) 212 , fCtx(SkRef(ctx))
213 { 213 {
214 SkAutoTUnref<SkSurface> surface(SkSurface::NewRenderTarget(ctx, SkBudget ed::kNo, 214 SkAutoTUnref<SkSurface> surface(SkSurface::NewRenderTarget(ctx, SkBudget ed::kNo,
215 info, 0)); 215 info, 0));
216 surface->getCanvas()->clear(0); 216 surface->getCanvas()->clear(0);
217 surface->getCanvas()->translate(-100, -100); 217 surface->getCanvas()->translate(-100, -100);
218 surface->getCanvas()->drawPicture(pic); 218 surface->getCanvas()->drawPicture(pic);
219 SkAutoTUnref<SkImage> image(surface->newImageSnapshot()); 219 sk_sp<SkImage> image(surface->makeImageSnapshot());
220 fTexture.reset(SkRef(as_IB(image)->peekTexture())); 220 fTexture.reset(SkRef(as_IB(image)->peekTexture()));
221 } 221 }
222 protected: 222 protected:
223 GrTexture* onGenerateTexture(GrContext* ctx, const SkIRect* subset) override { 223 GrTexture* onGenerateTexture(GrContext* ctx, const SkIRect* subset) override {
224 if (ctx) { 224 if (ctx) {
225 SkASSERT(ctx == fCtx.get()); 225 SkASSERT(ctx == fCtx.get());
226 } 226 }
227 227
228 if (!subset) { 228 if (!subset) {
229 return SkRef(fTexture.get()); 229 return SkRef(fTexture.get());
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 }; 370 };
371 DEF_GM( return new ImageCacheratorGM("picture", make_pic_generator); ) 371 DEF_GM( return new ImageCacheratorGM("picture", make_pic_generator); )
372 DEF_GM( return new ImageCacheratorGM("raster", make_ras_generator); ) 372 DEF_GM( return new ImageCacheratorGM("raster", make_ras_generator); )
373 DEF_GM( return new ImageCacheratorGM("ctable", make_ctable_generator); ) 373 DEF_GM( return new ImageCacheratorGM("ctable", make_ctable_generator); )
374 #if SK_SUPPORT_GPU 374 #if SK_SUPPORT_GPU
375 DEF_GM( return new ImageCacheratorGM("texture", make_tex_generator); ) 375 DEF_GM( return new ImageCacheratorGM("texture", make_tex_generator); )
376 #endif 376 #endif
377 377
378 378
379 379
OLDNEW
« no previous file with comments | « gm/image.cpp ('k') | gm/image_shader.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698