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

Side by Side Diff: gm/bigtileimagefilter.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/astcbitmap.cpp ('k') | gm/bleed.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 "SkImageSource.h" 8 #include "SkImageSource.h"
9 #include "SkSurface.h" 9 #include "SkSurface.h"
10 #include "SkTileImageFilter.h" 10 #include "SkTileImageFilter.h"
11 #include "gm.h" 11 #include "gm.h"
12 12
13 static SkImage* create_circle_texture(int size, SkColor color) { 13 static sk_sp<SkImage> create_circle_texture(int size, SkColor color) {
14 SkAutoTUnref<SkSurface> surface(SkSurface::NewRasterN32Premul(size, size)); 14 SkAutoTUnref<SkSurface> surface(SkSurface::NewRasterN32Premul(size, size));
15 SkCanvas* canvas = surface->getCanvas(); 15 SkCanvas* canvas = surface->getCanvas();
16 canvas->clear(0xFF000000); 16 canvas->clear(0xFF000000);
17 17
18 SkPaint paint; 18 SkPaint paint;
19 paint.setColor(color); 19 paint.setColor(color);
20 paint.setStrokeWidth(3); 20 paint.setStrokeWidth(3);
21 paint.setStyle(SkPaint::kStroke_Style); 21 paint.setStyle(SkPaint::kStroke_Style);
22 22
23 canvas->drawCircle(SkScalarHalf(size), SkScalarHalf(size), SkScalarHalf(size ), paint); 23 canvas->drawCircle(SkScalarHalf(size), SkScalarHalf(size), SkScalarHalf(size ), paint);
24 24
25 return surface->newImageSnapshot(); 25 return surface->makeImageSnapshot();
26 } 26 }
27 27
28 namespace skiagm { 28 namespace skiagm {
29 29
30 class BigTileImageFilterGM : public GM { 30 class BigTileImageFilterGM : public GM {
31 public: 31 public:
32 BigTileImageFilterGM() { 32 BigTileImageFilterGM() {
33 this->setBGColor(0xFF000000); 33 this->setBGColor(0xFF000000);
34 } 34 }
35 35
36 protected: 36 protected:
37 37
38 SkString onShortName() override { 38 SkString onShortName() override {
39 return SkString("bigtileimagefilter"); 39 return SkString("bigtileimagefilter");
40 } 40 }
41 41
42 SkISize onISize() override{ 42 SkISize onISize() override{
43 return SkISize::Make(kWidth, kHeight); 43 return SkISize::Make(kWidth, kHeight);
44 } 44 }
45 45
46 void onOnceBeforeDraw() override { 46 void onOnceBeforeDraw() override {
47 fRedImage.reset(create_circle_texture(kBitmapSize, SK_ColorRED)); 47 fRedImage = create_circle_texture(kBitmapSize, SK_ColorRED);
48 fGreenImage.reset(create_circle_texture(kBitmapSize, SK_ColorGREEN)); 48 fGreenImage = create_circle_texture(kBitmapSize, SK_ColorGREEN);
49 } 49 }
50 50
51 void onDraw(SkCanvas* canvas) override { 51 void onDraw(SkCanvas* canvas) override {
52 canvas->clear(SK_ColorBLACK); 52 canvas->clear(SK_ColorBLACK);
53 53
54 { 54 {
55 SkPaint p; 55 SkPaint p;
56 56
57 SkRect bound = SkRect::MakeWH(SkIntToScalar(kWidth), SkIntToScalar(k Height)); 57 SkRect bound = SkRect::MakeWH(SkIntToScalar(kWidth), SkIntToScalar(k Height));
58 SkAutoTUnref<SkImageFilter> imageSource(SkImageSource::Create(fRedIm age)); 58 sk_sp<SkImageFilter> imageSource(SkImageSource::Create(fRedImage.get ()));
59 SkAutoTUnref<SkImageFilter> tif(SkTileImageFilter::Create( 59 SkAutoTUnref<SkImageFilter> tif(SkTileImageFilter::Create(
60 SkRect::MakeWH(SkIntToScalar(kBitmapSize), SkIntToSc alar(kBitmapSize)), 60 SkRect::MakeWH(SkIntToScalar(kBitmapSize), SkIntToSc alar(kBitmapSize)),
61 SkRect::MakeWH(SkIntToScalar(kWidth), SkIntToScalar( kHeight)), 61 SkRect::MakeWH(SkIntToScalar(kWidth), SkIntToScalar( kHeight)),
62 imageSource)); 62 imageSource.get()));
63 p.setImageFilter(tif); 63 p.setImageFilter(tif);
64 64
65 canvas->saveLayer(&bound, &p); 65 canvas->saveLayer(&bound, &p);
66 canvas->restore(); 66 canvas->restore();
67 } 67 }
68 68
69 { 69 {
70 SkPaint p2; 70 SkPaint p2;
71 71
72 SkRect bound2 = SkRect::MakeWH(SkIntToScalar(kBitmapSize), SkIntToSc alar(kBitmapSize)); 72 SkRect bound2 = SkRect::MakeWH(SkIntToScalar(kBitmapSize), SkIntToSc alar(kBitmapSize));
73 73
74 SkAutoTUnref<SkImageFilter> tif2(SkTileImageFilter::Create( 74 SkAutoTUnref<SkImageFilter> tif2(SkTileImageFilter::Create(
75 SkRect::MakeWH(SkIntToScalar(kBitmapSize), SkIntToSc alar(kBitmapSize)), 75 SkRect::MakeWH(SkIntToScalar(kBitmapSize), SkIntToSc alar(kBitmapSize)),
76 SkRect::MakeWH(SkIntToScalar(kBitmapSize), SkIntToSc alar(kBitmapSize)), 76 SkRect::MakeWH(SkIntToScalar(kBitmapSize), SkIntToSc alar(kBitmapSize)),
77 nullptr)); 77 nullptr));
78 p2.setImageFilter(tif2); 78 p2.setImageFilter(tif2);
79 79
80 canvas->translate(320, 320); 80 canvas->translate(320, 320);
81 canvas->saveLayer(&bound2, &p2); 81 canvas->saveLayer(&bound2, &p2);
82 canvas->setMatrix(SkMatrix::I()); 82 canvas->setMatrix(SkMatrix::I());
83 83
84 SkRect bound3 = SkRect::MakeXYWH(320, 320, 84 SkRect bound3 = SkRect::MakeXYWH(320, 320,
85 SkIntToScalar(kBitmapSize), 85 SkIntToScalar(kBitmapSize),
86 SkIntToScalar(kBitmapSize)); 86 SkIntToScalar(kBitmapSize));
87 canvas->drawImageRect(fGreenImage, bound2, bound3, nullptr, 87 canvas->drawImageRect(fGreenImage.get(), bound2, bound3, nullptr,
88 SkCanvas::kStrict_SrcRectConstraint); 88 SkCanvas::kStrict_SrcRectConstraint);
89 canvas->restore(); 89 canvas->restore();
90 } 90 }
91 } 91 }
92 92
93 private: 93 private:
94 static const int kWidth = 512; 94 static const int kWidth = 512;
95 static const int kHeight = 512; 95 static const int kHeight = 512;
96 static const int kBitmapSize = 64; 96 static const int kBitmapSize = 64;
97 97
98 SkAutoTUnref<SkImage> fRedImage; 98 sk_sp<SkImage> fRedImage;
99 SkAutoTUnref<SkImage> fGreenImage; 99 sk_sp<SkImage> fGreenImage;
100 100
101 typedef GM INHERITED; 101 typedef GM INHERITED;
102 }; 102 };
103 103
104 ////////////////////////////////////////////////////////////////////////////// 104 //////////////////////////////////////////////////////////////////////////////
105 105
106 DEF_GM(return new BigTileImageFilterGM;) 106 DEF_GM(return new BigTileImageFilterGM;)
107 } 107 }
OLDNEW
« no previous file with comments | « gm/astcbitmap.cpp ('k') | gm/bleed.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698