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

Side by Side Diff: gm/imagefiltersgraph.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/imagefilterscropexpand.cpp ('k') | gm/imagefiltersscaled.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 9
10 #include "SkArithmeticMode.h" 10 #include "SkArithmeticMode.h"
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 104
105 protected: 105 protected:
106 106
107 SkString onShortName() override { 107 SkString onShortName() override {
108 return SkString("imagefiltersgraph"); 108 return SkString("imagefiltersgraph");
109 } 109 }
110 110
111 SkISize onISize() override { return SkISize::Make(600, 150); } 111 SkISize onISize() override { return SkISize::Make(600, 150); }
112 112
113 void onOnceBeforeDraw() override { 113 void onOnceBeforeDraw() override {
114 fImage.reset(SkImage::NewFromBitmap( 114 fImage = SkImage::MakeFromBitmap(
115 sk_tool_utils::create_string_bitmap(100, 100, SK_ColorWHITE, 20, 70, 96, "e"))); 115 sk_tool_utils::create_string_bitmap(100, 100, SK_ColorWHITE, 20, 70, 96, "e"));
116 } 116 }
117 117
118 void onDraw(SkCanvas* canvas) override { 118 void onDraw(SkCanvas* canvas) override {
119 canvas->clear(SK_ColorBLACK); 119 canvas->clear(SK_ColorBLACK);
120 { 120 {
121 SkAutoTUnref<SkImageFilter> bitmapSource(SkImageSource::Create(fImag e)); 121 SkAutoTUnref<SkImageFilter> bitmapSource(SkImageSource::Create(fImag e.get()));
122 SkAutoTUnref<SkColorFilter> cf(SkColorFilter::CreateModeFilter(SK_Co lorRED, 122 SkAutoTUnref<SkColorFilter> cf(SkColorFilter::CreateModeFilter(SK_Co lorRED,
123 SkXfermode::kSrcIn_Mode )); 123 SkXfermode::kSrcIn_Mode ));
124 SkAutoTUnref<SkImageFilter> blur(SkBlurImageFilter::Create(4.0f, 4.0 f, bitmapSource)); 124 SkAutoTUnref<SkImageFilter> blur(SkBlurImageFilter::Create(4.0f, 4.0 f, bitmapSource));
125 SkAutoTUnref<SkImageFilter> erode(SkErodeImageFilter::Create(4, 4, b lur)); 125 SkAutoTUnref<SkImageFilter> erode(SkErodeImageFilter::Create(4, 4, b lur));
126 SkAutoTUnref<SkImageFilter> color(SkColorFilterImageFilter::Create(c f, erode)); 126 SkAutoTUnref<SkImageFilter> color(SkColorFilterImageFilter::Create(c f, erode));
127 SkAutoTUnref<SkImageFilter> merge(SkMergeImageFilter::Create(blur, c olor)); 127 SkAutoTUnref<SkImageFilter> merge(SkMergeImageFilter::Create(blur, c olor));
128 128
129 SkPaint paint; 129 SkPaint paint;
130 paint.setImageFilter(merge); 130 paint.setImageFilter(merge);
131 canvas->drawPaint(paint); 131 canvas->drawPaint(paint);
132 canvas->translate(SkIntToScalar(100), 0); 132 canvas->translate(SkIntToScalar(100), 0);
133 } 133 }
134 { 134 {
135 SkAutoTUnref<SkImageFilter> morph(SkDilateImageFilter::Create(5, 5)) ; 135 SkAutoTUnref<SkImageFilter> morph(SkDilateImageFilter::Create(5, 5)) ;
136 136
137 SkScalar matrix[20] = { SK_Scalar1, 0, 0, 0, 0, 137 SkScalar matrix[20] = { SK_Scalar1, 0, 0, 0, 0,
138 0, SK_Scalar1, 0, 0, 0, 138 0, SK_Scalar1, 0, 0, 0,
139 0, 0, SK_Scalar1, 0, 0, 139 0, 0, SK_Scalar1, 0, 0,
140 0, 0, 0, 0.5f, 0 }; 140 0, 0, 0, 0.5f, 0 };
141 141
142 SkAutoTUnref<SkColorFilter> matrixFilter(SkColorMatrixFilter::Create (matrix)); 142 SkAutoTUnref<SkColorFilter> matrixFilter(SkColorMatrixFilter::Create (matrix));
143 SkAutoTUnref<SkImageFilter> colorMorph(SkColorFilterImageFilter::Cre ate(matrixFilter, morph)); 143 SkAutoTUnref<SkImageFilter> colorMorph(SkColorFilterImageFilter::Cre ate(matrixFilter, morph));
144 SkAutoTUnref<SkXfermode> mode(SkXfermode::Create(SkXfermode::kSrcOve r_Mode)); 144 SkAutoTUnref<SkXfermode> mode(SkXfermode::Create(SkXfermode::kSrcOve r_Mode));
145 SkAutoTUnref<SkImageFilter> blendColor(SkXfermodeImageFilter::Create (mode, colorMorph)); 145 SkAutoTUnref<SkImageFilter> blendColor(SkXfermodeImageFilter::Create (mode, colorMorph));
146 146
147 SkPaint paint; 147 SkPaint paint;
148 paint.setImageFilter(blendColor); 148 paint.setImageFilter(blendColor);
149 DrawClippedImage(canvas, fImage, paint); 149 DrawClippedImage(canvas, fImage.get(), paint);
150 canvas->translate(SkIntToScalar(100), 0); 150 canvas->translate(SkIntToScalar(100), 0);
151 } 151 }
152 { 152 {
153 SkScalar matrix[20] = { SK_Scalar1, 0, 0, 0, 0, 153 SkScalar matrix[20] = { SK_Scalar1, 0, 0, 0, 0,
154 0, SK_Scalar1, 0, 0, 0, 154 0, SK_Scalar1, 0, 0, 0,
155 0, 0, SK_Scalar1, 0, 0, 155 0, 0, SK_Scalar1, 0, 0,
156 0, 0, 0, 0.5f, 0 }; 156 0, 0, 0, 0.5f, 0 };
157 SkAutoTUnref<SkColorFilter> matrixCF(SkColorMatrixFilter::Create(mat rix)); 157 SkAutoTUnref<SkColorFilter> matrixCF(SkColorMatrixFilter::Create(mat rix));
158 SkAutoTUnref<SkImageFilter> matrixFilter(SkColorFilterImageFilter::C reate(matrixCF)); 158 SkAutoTUnref<SkImageFilter> matrixFilter(SkColorFilterImageFilter::C reate(matrixCF));
159 SkAutoTUnref<SkImageFilter> offsetFilter( 159 SkAutoTUnref<SkImageFilter> offsetFilter(
160 SimpleOffsetFilter::Create(10.0f, 10.f, matrixFilter)); 160 SimpleOffsetFilter::Create(10.0f, 10.f, matrixFilter));
161 161
162 SkAutoTUnref<SkXfermode> arith(SkArithmeticMode::Create(0, SK_Scalar 1, SK_Scalar1, 0)); 162 SkAutoTUnref<SkXfermode> arith(SkArithmeticMode::Create(0, SK_Scalar 1, SK_Scalar1, 0));
163 SkAutoTUnref<SkImageFilter> arithFilter( 163 SkAutoTUnref<SkImageFilter> arithFilter(
164 SkXfermodeImageFilter::Create(arith, matrixFilter, offsetFilter) ); 164 SkXfermodeImageFilter::Create(arith, matrixFilter, offsetFilter) );
165 165
166 SkPaint paint; 166 SkPaint paint;
167 paint.setImageFilter(arithFilter); 167 paint.setImageFilter(arithFilter);
168 DrawClippedImage(canvas, fImage, paint); 168 DrawClippedImage(canvas, fImage.get(), paint);
169 canvas->translate(SkIntToScalar(100), 0); 169 canvas->translate(SkIntToScalar(100), 0);
170 } 170 }
171 { 171 {
172 SkAutoTUnref<SkImageFilter> blur(SkBlurImageFilter::Create( 172 SkAutoTUnref<SkImageFilter> blur(SkBlurImageFilter::Create(
173 SkIntToScalar(10), SkIntToScalar(10))); 173 SkIntToScalar(10), SkIntToScalar(10)));
174 174
175 SkAutoTUnref<SkXfermode> mode(SkXfermode::Create(SkXfermode::kSrcIn_ Mode)); 175 SkAutoTUnref<SkXfermode> mode(SkXfermode::Create(SkXfermode::kSrcIn_ Mode));
176 SkImageFilter::CropRect cropRect(SkRect::MakeWH(SkIntToScalar(95), S kIntToScalar(100))); 176 SkImageFilter::CropRect cropRect(SkRect::MakeWH(SkIntToScalar(95), S kIntToScalar(100)));
177 SkAutoTUnref<SkImageFilter> blend( 177 SkAutoTUnref<SkImageFilter> blend(
178 SkXfermodeImageFilter::Create(mode, blur, nullptr, &cropRect)); 178 SkXfermodeImageFilter::Create(mode, blur, nullptr, &cropRect));
179 179
180 SkPaint paint; 180 SkPaint paint;
181 paint.setImageFilter(blend); 181 paint.setImageFilter(blend);
182 DrawClippedImage(canvas, fImage, paint); 182 DrawClippedImage(canvas, fImage.get(), paint);
183 canvas->translate(SkIntToScalar(100), 0); 183 canvas->translate(SkIntToScalar(100), 0);
184 } 184 }
185 { 185 {
186 // Dilate -> matrix convolution. 186 // Dilate -> matrix convolution.
187 // This tests that a filter using asFragmentProcessor (matrix 187 // This tests that a filter using asFragmentProcessor (matrix
188 // convolution) correctly handles a non-zero source offset 188 // convolution) correctly handles a non-zero source offset
189 // (supplied by the dilate). 189 // (supplied by the dilate).
190 SkAutoTUnref<SkImageFilter> dilate(SkDilateImageFilter::Create(5, 5) ); 190 SkAutoTUnref<SkImageFilter> dilate(SkDilateImageFilter::Create(5, 5) );
191 191
192 SkAutoTUnref<SkXfermode> mode(SkXfermode::Create(SkXfermode::kSrcIn_ Mode)); 192 SkAutoTUnref<SkXfermode> mode(SkXfermode::Create(SkXfermode::kSrcIn_ Mode));
(...skipping 13 matching lines...) Expand all
206 kernel, 206 kernel,
207 gain, 207 gain,
208 bias, 208 bias,
209 kernelOffset, 209 kernelOffset,
210 tileMode, 210 tileMode,
211 convolveAlpha, 211 convolveAlpha,
212 dilate)); 212 dilate));
213 213
214 SkPaint paint; 214 SkPaint paint;
215 paint.setImageFilter(convolve); 215 paint.setImageFilter(convolve);
216 DrawClippedImage(canvas, fImage, paint); 216 DrawClippedImage(canvas, fImage.get(), paint);
217 canvas->translate(SkIntToScalar(100), 0); 217 canvas->translate(SkIntToScalar(100), 0);
218 } 218 }
219 { 219 {
220 // Test that crop offsets are absolute, not relative to the parent's crop rect. 220 // Test that crop offsets are absolute, not relative to the parent's crop rect.
221 SkAutoTUnref<SkColorFilter> cf1(SkColorFilter::CreateModeFilter(SK_C olorBLUE, 221 SkAutoTUnref<SkColorFilter> cf1(SkColorFilter::CreateModeFilter(SK_C olorBLUE,
222 SkXf ermode::kSrcIn_Mode)); 222 SkXf ermode::kSrcIn_Mode));
223 SkAutoTUnref<SkColorFilter> cf2(SkColorFilter::CreateModeFilter(SK_C olorGREEN, 223 SkAutoTUnref<SkColorFilter> cf2(SkColorFilter::CreateModeFilter(SK_C olorGREEN,
224 SkXf ermode::kSrcIn_Mode)); 224 SkXf ermode::kSrcIn_Mode));
225 SkImageFilter::CropRect outerRect(SkRect::MakeXYWH(SkIntToScalar(10) , SkIntToScalar(10), 225 SkImageFilter::CropRect outerRect(SkRect::MakeXYWH(SkIntToScalar(10) , SkIntToScalar(10),
226 SkIntToScalar(80) , SkIntToScalar(80))); 226 SkIntToScalar(80) , SkIntToScalar(80)));
(...skipping 11 matching lines...) Expand all
238 } 238 }
239 239
240 private: 240 private:
241 static void DrawClippedImage(SkCanvas* canvas, const SkImage* image, const S kPaint& paint) { 241 static void DrawClippedImage(SkCanvas* canvas, const SkImage* image, const S kPaint& paint) {
242 canvas->save(); 242 canvas->save();
243 canvas->clipRect(SkRect::MakeIWH(image->width(), image->height())); 243 canvas->clipRect(SkRect::MakeIWH(image->width(), image->height()));
244 canvas->drawImage(image, 0, 0, &paint); 244 canvas->drawImage(image, 0, 0, &paint);
245 canvas->restore(); 245 canvas->restore();
246 } 246 }
247 247
248 SkAutoTUnref<SkImage> fImage; 248 sk_sp<SkImage> fImage;
249 249
250 typedef GM INHERITED; 250 typedef GM INHERITED;
251 }; 251 };
252 252
253 /////////////////////////////////////////////////////////////////////////////// 253 ///////////////////////////////////////////////////////////////////////////////
254 254
255 DEF_GM(return new ImageFiltersGraphGM;) 255 DEF_GM(return new ImageFiltersGraphGM;)
OLDNEW
« no previous file with comments | « gm/imagefilterscropexpand.cpp ('k') | gm/imagefiltersscaled.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698