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

Side by Side Diff: gm/colorfilterimagefilter.cpp

Issue 1858813002: Update SkColorFilterImageFilter to sk_sp (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: update to ToT Created 4 years, 8 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/coloremoji.cpp ('k') | gm/dropshadowimagefilter.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 2012 Google Inc. 2 * Copyright 2012 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 "SkColorMatrixFilter.h" 10 #include "SkColorMatrixFilter.h"
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 } 85 }
86 } 86 }
87 87
88 //////////////////////////////////////////////////////////////////////////////// /////////////////// 88 //////////////////////////////////////////////////////////////////////////////// ///////////////////
89 89
90 static sk_sp<SkImageFilter> make_blur(float amount, sk_sp<SkImageFilter> input) { 90 static sk_sp<SkImageFilter> make_blur(float amount, sk_sp<SkImageFilter> input) {
91 return SkBlurImageFilter::Make(amount, amount, std::move(input)); 91 return SkBlurImageFilter::Make(amount, amount, std::move(input));
92 } 92 }
93 93
94 static sk_sp<SkImageFilter> make_brightness(float amount, sk_sp<SkImageFilter> i nput) { 94 static sk_sp<SkImageFilter> make_brightness(float amount, sk_sp<SkImageFilter> i nput) {
95 return sk_sp<SkImageFilter>(SkColorFilterImageFilter::Create(cf_make_brightn ess(amount).get(), 95 return SkColorFilterImageFilter::Make(cf_make_brightness(amount), std::move( input));
96 input.get()));
97 } 96 }
98 97
99 static sk_sp<SkImageFilter> make_grayscale(sk_sp<SkImageFilter> input) { 98 static sk_sp<SkImageFilter> make_grayscale(sk_sp<SkImageFilter> input) {
100 return sk_sp<SkImageFilter>(SkColorFilterImageFilter::Create(cf_make_graysca le().get(), 99 return SkColorFilterImageFilter::Make(cf_make_grayscale(), std::move(input)) ;
101 input.get()));
102 } 100 }
103 101
104 static sk_sp<SkImageFilter> make_mode_blue(sk_sp<SkImageFilter> input) { 102 static sk_sp<SkImageFilter> make_mode_blue(sk_sp<SkImageFilter> input) {
105 return sk_sp<SkImageFilter>(SkColorFilterImageFilter::Create(cf_make_coloriz e(SK_ColorBLUE).get(), 103 return SkColorFilterImageFilter::Make(cf_make_colorize(SK_ColorBLUE), std::m ove(input));
106 input.get()));
107 } 104 }
108 105
109 static void draw_clipped_rect(SkCanvas* canvas, 106 static void draw_clipped_rect(SkCanvas* canvas,
110 const SkRect& r, 107 const SkRect& r,
111 const SkPaint& paint, 108 const SkPaint& paint,
112 float outset = 0.0f) { 109 float outset = 0.0f) {
113 canvas->save(); 110 canvas->save();
114 SkRect clip(r); 111 SkRect clip(r);
115 clip.outset(outset, outset); 112 clip.outset(outset, outset);
116 canvas->clipRect(clip); 113 canvas->clipRect(clip);
117 canvas->drawRect(r, paint); 114 canvas->drawRect(r, paint);
118 canvas->restore(); 115 canvas->restore();
119 } 116 }
120 117
121 DEF_SIMPLE_GM(colorfilterimagefilter, canvas, 400, 100){ 118 DEF_SIMPLE_GM(colorfilterimagefilter, canvas, 400, 100){
122 SkRect r = SkRect::MakeWH(FILTER_WIDTH, FILTER_HEIGHT); 119 SkRect r = SkRect::MakeWH(FILTER_WIDTH, FILTER_HEIGHT);
123 SkPaint paint; 120 SkPaint paint;
124 paint.setColor(SK_ColorRED); 121 paint.setColor(SK_ColorRED);
125 canvas->save(); 122 canvas->save();
126 for (float brightness = -1.0f; brightness <= 1.0f; brightness += 0.2f) { 123 for (float brightness = -1.0f; brightness <= 1.0f; brightness += 0.2f) {
127 sk_sp<SkImageFilter> dim(make_brightness(-brightness, nullptr)); 124 sk_sp<SkImageFilter> dim(make_brightness(-brightness, nullptr));
128 sk_sp<SkImageFilter> bright(make_brightness(brightness, std::move(di m))); 125 sk_sp<SkImageFilter> bright(make_brightness(brightness, std::move(di m)));
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 paint.setImageFilter(std::move(blue)); 169 paint.setImageFilter(std::move(blue));
173 draw_clipped_rect(canvas, r, paint, 5); 170 draw_clipped_rect(canvas, r, paint, 5);
174 canvas->translate(FILTER_WIDTH + MARGIN, 0); 171 canvas->translate(FILTER_WIDTH + MARGIN, 0);
175 } 172 }
176 } 173 }
177 174
178 DEF_SIMPLE_GM(colorfilterimagefilter_layer, canvas, 32, 32) { 175 DEF_SIMPLE_GM(colorfilterimagefilter_layer, canvas, 32, 32) {
179 SkAutoCanvasRestore autoCanvasRestore(canvas, false); 176 SkAutoCanvasRestore autoCanvasRestore(canvas, false);
180 SkColorMatrix cm; 177 SkColorMatrix cm;
181 cm.setSaturation(0.0f); 178 cm.setSaturation(0.0f);
182 auto cf(SkColorFilter::MakeMatrixFilterRowMajor255(cm.fMat)); 179 sk_sp<SkColorFilter> cf(SkColorFilter::MakeMatrixFilterRowMajor255(cm.fMat)) ;
183 sk_sp<SkImageFilter> imf(SkColorFilterImageFilter::Create(cf.get()));
184 SkPaint p; 180 SkPaint p;
185 p.setImageFilter(std::move(imf)); 181 p.setImageFilter(SkColorFilterImageFilter::Make(std::move(cf), nullptr));
186 canvas->saveLayer(NULL, &p); 182 canvas->saveLayer(NULL, &p);
187 canvas->clear(SK_ColorRED); 183 canvas->clear(SK_ColorRED);
188 } 184 }
189 185
190 //////////////////////////////////////////////////////////////////////////////// /////////////////// 186 //////////////////////////////////////////////////////////////////////////////// ///////////////////
191 187
192 template <typename T> class SkTRefArray : public SkTDArray<T> { 188 template <typename T> class SkTRefArray : public SkTDArray<T> {
193 public: 189 public:
194 ~SkTRefArray() { this->unrefAll(); } 190 ~SkTRefArray() { this->unrefAll(); }
195 }; 191 };
(...skipping 17 matching lines...) Expand all
213 sk_sp<SkColorFilter> filter = x >= 0 ? filters[x] : nullptr; 209 sk_sp<SkColorFilter> filter = x >= 0 ? filters[x] : nullptr;
214 210
215 paint.setShader(shader->makeWithColorFilter(filter)); 211 paint.setShader(shader->makeWithColorFilter(filter));
216 canvas->drawRect(r, paint); 212 canvas->drawRect(r, paint);
217 canvas->translate(150, 0); 213 canvas->translate(150, 0);
218 } 214 }
219 canvas->restore(); 215 canvas->restore();
220 canvas->translate(0, 150); 216 canvas->translate(0, 150);
221 } 217 }
222 } 218 }
OLDNEW
« no previous file with comments | « gm/coloremoji.cpp ('k') | gm/dropshadowimagefilter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698