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

Side by Side Diff: gm/bleed.cpp

Issue 1009183002: swith over from SkPaint::FilterLevel to SkFilterQuality (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 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/bitmapfilters.cpp ('k') | gm/blurquickreject.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 2013 Google Inc. 2 * Copyright 2013 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 "SkBlurMask.h" 9 #include "SkBlurMask.h"
10 #include "SkBlurMaskFilter.h" 10 #include "SkBlurMaskFilter.h"
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 void onOnceBeforeDraw() SK_OVERRIDE { 97 void onOnceBeforeDraw() SK_OVERRIDE {
98 make_ringed_bitmap(&fBitmapSmall, kSmallTextureSize, kSmallTextureSize); 98 make_ringed_bitmap(&fBitmapSmall, kSmallTextureSize, kSmallTextureSize);
99 99
100 // To exercise the GPU's tiling path we need a texture 100 // To exercise the GPU's tiling path we need a texture
101 // too big for the GPU to handle in one go 101 // too big for the GPU to handle in one go
102 make_ringed_bitmap(&fBitmapBig, 2*kMaxTextureSize, 2*kMaxTextureSize); 102 make_ringed_bitmap(&fBitmapBig, 2*kMaxTextureSize, 2*kMaxTextureSize);
103 } 103 }
104 104
105 // Draw only the center of the small bitmap 105 // Draw only the center of the small bitmap
106 void drawCase1(SkCanvas* canvas, int transX, int transY, 106 void drawCase1(SkCanvas* canvas, int transX, int transY,
107 SkCanvas::DrawBitmapRectFlags flags, SkPaint::FilterLevel fil ter) { 107 SkCanvas::DrawBitmapRectFlags flags, SkFilterQuality filter) {
108 SkRect src = SkRect::MakeXYWH(2, 2, 108 SkRect src = SkRect::MakeXYWH(2, 2,
109 SkIntToScalar(kSmallTextureSize-4), 109 SkIntToScalar(kSmallTextureSize-4),
110 SkIntToScalar(kSmallTextureSize-4)); 110 SkIntToScalar(kSmallTextureSize-4));
111 SkRect dst = SkRect::MakeXYWH(0, 0, SkIntToScalar(kBlockSize), SkIntToSc alar(kBlockSize)); 111 SkRect dst = SkRect::MakeXYWH(0, 0, SkIntToScalar(kBlockSize), SkIntToSc alar(kBlockSize));
112 112
113 SkPaint paint; 113 SkPaint paint;
114 paint.setFilterLevel(filter); 114 paint.setFilterQuality(filter);
115 115
116 canvas->save(); 116 canvas->save();
117 canvas->translate(SkIntToScalar(transX), SkIntToScalar(transY)); 117 canvas->translate(SkIntToScalar(transX), SkIntToScalar(transY));
118 canvas->drawBitmapRectToRect(fBitmapSmall, &src, dst, &paint, flags); 118 canvas->drawBitmapRectToRect(fBitmapSmall, &src, dst, &paint, flags);
119 canvas->restore(); 119 canvas->restore();
120 } 120 }
121 121
122 // Draw almost all of the large bitmap 122 // Draw almost all of the large bitmap
123 void drawCase2(SkCanvas* canvas, int transX, int transY, 123 void drawCase2(SkCanvas* canvas, int transX, int transY,
124 SkCanvas::DrawBitmapRectFlags flags, SkPaint::FilterLevel fil ter) { 124 SkCanvas::DrawBitmapRectFlags flags, SkFilterQuality filter) {
125 SkRect src = SkRect::MakeXYWH(2, 2, 125 SkRect src = SkRect::MakeXYWH(2, 2,
126 SkIntToScalar(fBitmapBig.width()-4), 126 SkIntToScalar(fBitmapBig.width()-4),
127 SkIntToScalar(fBitmapBig.height()-4)); 127 SkIntToScalar(fBitmapBig.height()-4));
128 SkRect dst = SkRect::MakeXYWH(0, 0, SkIntToScalar(kBlockSize), SkIntToSc alar(kBlockSize)); 128 SkRect dst = SkRect::MakeXYWH(0, 0, SkIntToScalar(kBlockSize), SkIntToSc alar(kBlockSize));
129 129
130 SkPaint paint; 130 SkPaint paint;
131 paint.setFilterLevel(filter); 131 paint.setFilterQuality(filter);
132 132
133 canvas->save(); 133 canvas->save();
134 canvas->translate(SkIntToScalar(transX), SkIntToScalar(transY)); 134 canvas->translate(SkIntToScalar(transX), SkIntToScalar(transY));
135 canvas->drawBitmapRectToRect(fBitmapBig, &src, dst, &paint, flags); 135 canvas->drawBitmapRectToRect(fBitmapBig, &src, dst, &paint, flags);
136 canvas->restore(); 136 canvas->restore();
137 } 137 }
138 138
139 // Draw ~1/4 of the large bitmap 139 // Draw ~1/4 of the large bitmap
140 void drawCase3(SkCanvas* canvas, int transX, int transY, 140 void drawCase3(SkCanvas* canvas, int transX, int transY,
141 SkCanvas::DrawBitmapRectFlags flags, SkPaint::FilterLevel fil ter) { 141 SkCanvas::DrawBitmapRectFlags flags, SkFilterQuality filter) {
142 SkRect src = SkRect::MakeXYWH(2, 2, 142 SkRect src = SkRect::MakeXYWH(2, 2,
143 SkIntToScalar(fBitmapBig.width()/2-2), 143 SkIntToScalar(fBitmapBig.width()/2-2),
144 SkIntToScalar(fBitmapBig.height()/2-2)); 144 SkIntToScalar(fBitmapBig.height()/2-2));
145 SkRect dst = SkRect::MakeXYWH(0, 0, SkIntToScalar(kBlockSize), SkIntToSc alar(kBlockSize)); 145 SkRect dst = SkRect::MakeXYWH(0, 0, SkIntToScalar(kBlockSize), SkIntToSc alar(kBlockSize));
146 146
147 SkPaint paint; 147 SkPaint paint;
148 paint.setFilterLevel(filter); 148 paint.setFilterQuality(filter);
149 149
150 canvas->save(); 150 canvas->save();
151 canvas->translate(SkIntToScalar(transX), SkIntToScalar(transY)); 151 canvas->translate(SkIntToScalar(transX), SkIntToScalar(transY));
152 canvas->drawBitmapRectToRect(fBitmapBig, &src, dst, &paint, flags); 152 canvas->drawBitmapRectToRect(fBitmapBig, &src, dst, &paint, flags);
153 canvas->restore(); 153 canvas->restore();
154 } 154 }
155 155
156 // Draw the center of the small bitmap with a mask filter 156 // Draw the center of the small bitmap with a mask filter
157 void drawCase4(SkCanvas* canvas, int transX, int transY, 157 void drawCase4(SkCanvas* canvas, int transX, int transY,
158 SkCanvas::DrawBitmapRectFlags flags, SkPaint::FilterLevel fil ter) { 158 SkCanvas::DrawBitmapRectFlags flags, SkFilterQuality filter) {
159 SkRect src = SkRect::MakeXYWH(2, 2, 159 SkRect src = SkRect::MakeXYWH(2, 2,
160 SkIntToScalar(kSmallTextureSize-4), 160 SkIntToScalar(kSmallTextureSize-4),
161 SkIntToScalar(kSmallTextureSize-4)); 161 SkIntToScalar(kSmallTextureSize-4));
162 SkRect dst = SkRect::MakeXYWH(0, 0, SkIntToScalar(kBlockSize), SkIntToSc alar(kBlockSize)); 162 SkRect dst = SkRect::MakeXYWH(0, 0, SkIntToScalar(kBlockSize), SkIntToSc alar(kBlockSize));
163 163
164 SkPaint paint; 164 SkPaint paint;
165 paint.setFilterLevel(filter); 165 paint.setFilterQuality(filter);
166 SkMaskFilter* mf = SkBlurMaskFilter::Create(kNormal_SkBlurStyle, 166 SkMaskFilter* mf = SkBlurMaskFilter::Create(kNormal_SkBlurStyle,
167 SkBlurMask::ConvertRadiusToSigma(SkIntT oScalar(3))); 167 SkBlurMask::ConvertRadiusToSigma(SkIntT oScalar(3)));
168 paint.setMaskFilter(mf)->unref(); 168 paint.setMaskFilter(mf)->unref();
169 169
170 canvas->save(); 170 canvas->save();
171 canvas->translate(SkIntToScalar(transX), SkIntToScalar(transY)); 171 canvas->translate(SkIntToScalar(transX), SkIntToScalar(transY));
172 canvas->drawBitmapRectToRect(fBitmapSmall, &src, dst, &paint, flags); 172 canvas->drawBitmapRectToRect(fBitmapSmall, &src, dst, &paint, flags);
173 canvas->restore(); 173 canvas->restore();
174 } 174 }
175 175
176 void onDraw(SkCanvas* canvas) SK_OVERRIDE { 176 void onDraw(SkCanvas* canvas) SK_OVERRIDE {
177 177
178 canvas->clear(SK_ColorGRAY); 178 canvas->clear(SK_ColorGRAY);
179 179
180 for (int m = 0; m < 2; ++m) { 180 for (int m = 0; m < 2; ++m) {
181 canvas->save(); 181 canvas->save();
182 if (m) { 182 if (m) {
183 static const SkScalar kBottom = SkIntToScalar(kRow3Y + kBlockSiz e + kBlockSpacing); 183 static const SkScalar kBottom = SkIntToScalar(kRow3Y + kBlockSiz e + kBlockSpacing);
184 canvas->translate(0, kBottom); 184 canvas->translate(0, kBottom);
185 SkMatrix rotate; 185 SkMatrix rotate;
186 rotate.setRotate(15.f, 0, kBottom + kBlockSpacing); 186 rotate.setRotate(15.f, 0, kBottom + kBlockSpacing);
187 canvas->concat(rotate); 187 canvas->concat(rotate);
188 canvas->scale(0.71f, 1.22f); 188 canvas->scale(0.71f, 1.22f);
189 } 189 }
190 190
191 // First draw a column with no bleeding, tiling, or filtering 191 // First draw a column with no bleeding, tiling, or filtering
192 this->drawCase1(canvas, kCol0X, kRow0Y, SkCanvas::kNone_DrawBitmapRe ctFlag, SkPaint::kNone_FilterLevel); 192 this->drawCase1(canvas, kCol0X, kRow0Y, SkCanvas::kNone_DrawBitmapRe ctFlag, kNone_SkFilterQuality);
193 this->drawCase2(canvas, kCol0X, kRow1Y, SkCanvas::kNone_DrawBitmapRe ctFlag, SkPaint::kNone_FilterLevel); 193 this->drawCase2(canvas, kCol0X, kRow1Y, SkCanvas::kNone_DrawBitmapRe ctFlag, kNone_SkFilterQuality);
194 this->drawCase3(canvas, kCol0X, kRow2Y, SkCanvas::kNone_DrawBitmapRe ctFlag, SkPaint::kNone_FilterLevel); 194 this->drawCase3(canvas, kCol0X, kRow2Y, SkCanvas::kNone_DrawBitmapRe ctFlag, kNone_SkFilterQuality);
195 this->drawCase4(canvas, kCol0X, kRow3Y, SkCanvas::kNone_DrawBitmapRe ctFlag, SkPaint::kNone_FilterLevel); 195 this->drawCase4(canvas, kCol0X, kRow3Y, SkCanvas::kNone_DrawBitmapRe ctFlag, kNone_SkFilterQuality);
196 196
197 // Then draw a column with no bleeding or tiling but with low filter ing 197 // Then draw a column with no bleeding or tiling but with low filter ing
198 this->drawCase1(canvas, kCol1X, kRow0Y, SkCanvas::kNone_DrawBitmapRe ctFlag, SkPaint::kLow_FilterLevel); 198 this->drawCase1(canvas, kCol1X, kRow0Y, SkCanvas::kNone_DrawBitmapRe ctFlag, kLow_SkFilterQuality);
199 this->drawCase2(canvas, kCol1X, kRow1Y, SkCanvas::kNone_DrawBitmapRe ctFlag, SkPaint::kLow_FilterLevel); 199 this->drawCase2(canvas, kCol1X, kRow1Y, SkCanvas::kNone_DrawBitmapRe ctFlag, kLow_SkFilterQuality);
200 this->drawCase3(canvas, kCol1X, kRow2Y, SkCanvas::kNone_DrawBitmapRe ctFlag, SkPaint::kLow_FilterLevel); 200 this->drawCase3(canvas, kCol1X, kRow2Y, SkCanvas::kNone_DrawBitmapRe ctFlag, kLow_SkFilterQuality);
201 this->drawCase4(canvas, kCol1X, kRow3Y, SkCanvas::kNone_DrawBitmapRe ctFlag, SkPaint::kLow_FilterLevel); 201 this->drawCase4(canvas, kCol1X, kRow3Y, SkCanvas::kNone_DrawBitmapRe ctFlag, kLow_SkFilterQuality);
202 202
203 // Then draw a column with no bleeding or tiling but with high filte ring 203 // Then draw a column with no bleeding or tiling but with high filte ring
204 this->drawCase1(canvas, kCol2X, kRow0Y, SkCanvas::kNone_DrawBitmapRe ctFlag, SkPaint::kHigh_FilterLevel); 204 this->drawCase1(canvas, kCol2X, kRow0Y, SkCanvas::kNone_DrawBitmapRe ctFlag, kHigh_SkFilterQuality);
205 this->drawCase2(canvas, kCol2X, kRow1Y, SkCanvas::kNone_DrawBitmapRe ctFlag, SkPaint::kHigh_FilterLevel); 205 this->drawCase2(canvas, kCol2X, kRow1Y, SkCanvas::kNone_DrawBitmapRe ctFlag, kHigh_SkFilterQuality);
206 this->drawCase3(canvas, kCol2X, kRow2Y, SkCanvas::kNone_DrawBitmapRe ctFlag, SkPaint::kHigh_FilterLevel); 206 this->drawCase3(canvas, kCol2X, kRow2Y, SkCanvas::kNone_DrawBitmapRe ctFlag, kHigh_SkFilterQuality);
207 this->drawCase4(canvas, kCol2X, kRow3Y, SkCanvas::kNone_DrawBitmapRe ctFlag, SkPaint::kHigh_FilterLevel); 207 this->drawCase4(canvas, kCol2X, kRow3Y, SkCanvas::kNone_DrawBitmapRe ctFlag, kHigh_SkFilterQuality);
208 208
209 #if SK_SUPPORT_GPU 209 #if SK_SUPPORT_GPU
210 GrContext* ctx = canvas->getGrContext(); 210 GrContext* ctx = canvas->getGrContext();
211 int oldMaxTextureSize = 0; 211 int oldMaxTextureSize = 0;
212 if (ctx) { 212 if (ctx) {
213 // shrink the max texture size so all our textures can be reason ably sized 213 // shrink the max texture size so all our textures can be reason ably sized
214 oldMaxTextureSize = ctx->getMaxTextureSize(); 214 oldMaxTextureSize = ctx->getMaxTextureSize();
215 ctx->setMaxTextureSizeOverride(kMaxTextureSize); 215 ctx->setMaxTextureSizeOverride(kMaxTextureSize);
216 } 216 }
217 #endif 217 #endif
218 218
219 // Then draw a column with no bleeding but with tiling and low filte ring 219 // Then draw a column with no bleeding but with tiling and low filte ring
220 this->drawCase1(canvas, kCol3X, kRow0Y, SkCanvas::kNone_DrawBitmapRe ctFlag, SkPaint::kLow_FilterLevel); 220 this->drawCase1(canvas, kCol3X, kRow0Y, SkCanvas::kNone_DrawBitmapRe ctFlag, kLow_SkFilterQuality);
221 this->drawCase2(canvas, kCol3X, kRow1Y, SkCanvas::kNone_DrawBitmapRe ctFlag, SkPaint::kLow_FilterLevel); 221 this->drawCase2(canvas, kCol3X, kRow1Y, SkCanvas::kNone_DrawBitmapRe ctFlag, kLow_SkFilterQuality);
222 this->drawCase3(canvas, kCol3X, kRow2Y, SkCanvas::kNone_DrawBitmapRe ctFlag, SkPaint::kLow_FilterLevel); 222 this->drawCase3(canvas, kCol3X, kRow2Y, SkCanvas::kNone_DrawBitmapRe ctFlag, kLow_SkFilterQuality);
223 this->drawCase4(canvas, kCol3X, kRow3Y, SkCanvas::kNone_DrawBitmapRe ctFlag, SkPaint::kLow_FilterLevel); 223 this->drawCase4(canvas, kCol3X, kRow3Y, SkCanvas::kNone_DrawBitmapRe ctFlag, kLow_SkFilterQuality);
224 224
225 // Then draw a column with no bleeding but with tiling and high filt ering 225 // Then draw a column with no bleeding but with tiling and high filt ering
226 this->drawCase1(canvas, kCol4X, kRow0Y, SkCanvas::kNone_DrawBitmapRe ctFlag, SkPaint::kHigh_FilterLevel); 226 this->drawCase1(canvas, kCol4X, kRow0Y, SkCanvas::kNone_DrawBitmapRe ctFlag, kHigh_SkFilterQuality);
227 this->drawCase2(canvas, kCol4X, kRow1Y, SkCanvas::kNone_DrawBitmapRe ctFlag, SkPaint::kHigh_FilterLevel); 227 this->drawCase2(canvas, kCol4X, kRow1Y, SkCanvas::kNone_DrawBitmapRe ctFlag, kHigh_SkFilterQuality);
228 this->drawCase3(canvas, kCol4X, kRow2Y, SkCanvas::kNone_DrawBitmapRe ctFlag, SkPaint::kHigh_FilterLevel); 228 this->drawCase3(canvas, kCol4X, kRow2Y, SkCanvas::kNone_DrawBitmapRe ctFlag, kHigh_SkFilterQuality);
229 this->drawCase4(canvas, kCol4X, kRow3Y, SkCanvas::kNone_DrawBitmapRe ctFlag, SkPaint::kHigh_FilterLevel); 229 this->drawCase4(canvas, kCol4X, kRow3Y, SkCanvas::kNone_DrawBitmapRe ctFlag, kHigh_SkFilterQuality);
230 230
231 // Then draw a column with bleeding, tiling, and low filtering 231 // Then draw a column with bleeding, tiling, and low filtering
232 this->drawCase1(canvas, kCol5X, kRow0Y, SkCanvas::kBleed_DrawBitmapR ectFlag, SkPaint::kLow_FilterLevel); 232 this->drawCase1(canvas, kCol5X, kRow0Y, SkCanvas::kBleed_DrawBitmapR ectFlag, kLow_SkFilterQuality);
233 this->drawCase2(canvas, kCol5X, kRow1Y, SkCanvas::kBleed_DrawBitmapR ectFlag, SkPaint::kLow_FilterLevel); 233 this->drawCase2(canvas, kCol5X, kRow1Y, SkCanvas::kBleed_DrawBitmapR ectFlag, kLow_SkFilterQuality);
234 this->drawCase3(canvas, kCol5X, kRow2Y, SkCanvas::kBleed_DrawBitmapR ectFlag, SkPaint::kLow_FilterLevel); 234 this->drawCase3(canvas, kCol5X, kRow2Y, SkCanvas::kBleed_DrawBitmapR ectFlag, kLow_SkFilterQuality);
235 this->drawCase4(canvas, kCol5X, kRow3Y, SkCanvas::kBleed_DrawBitmapR ectFlag, SkPaint::kLow_FilterLevel); 235 this->drawCase4(canvas, kCol5X, kRow3Y, SkCanvas::kBleed_DrawBitmapR ectFlag, kLow_SkFilterQuality);
236 236
237 // Finally draw a column with bleeding, tiling, and high filtering 237 // Finally draw a column with bleeding, tiling, and high filtering
238 this->drawCase1(canvas, kCol6X, kRow0Y, SkCanvas::kBleed_DrawBitmapR ectFlag, SkPaint::kHigh_FilterLevel); 238 this->drawCase1(canvas, kCol6X, kRow0Y, SkCanvas::kBleed_DrawBitmapR ectFlag, kHigh_SkFilterQuality);
239 this->drawCase2(canvas, kCol6X, kRow1Y, SkCanvas::kBleed_DrawBitmapR ectFlag, SkPaint::kHigh_FilterLevel); 239 this->drawCase2(canvas, kCol6X, kRow1Y, SkCanvas::kBleed_DrawBitmapR ectFlag, kHigh_SkFilterQuality);
240 this->drawCase3(canvas, kCol6X, kRow2Y, SkCanvas::kBleed_DrawBitmapR ectFlag, SkPaint::kHigh_FilterLevel); 240 this->drawCase3(canvas, kCol6X, kRow2Y, SkCanvas::kBleed_DrawBitmapR ectFlag, kHigh_SkFilterQuality);
241 this->drawCase4(canvas, kCol6X, kRow3Y, SkCanvas::kBleed_DrawBitmapR ectFlag, SkPaint::kHigh_FilterLevel); 241 this->drawCase4(canvas, kCol6X, kRow3Y, SkCanvas::kBleed_DrawBitmapR ectFlag, kHigh_SkFilterQuality);
242 242
243 #if SK_SUPPORT_GPU 243 #if SK_SUPPORT_GPU
244 if (ctx) { 244 if (ctx) {
245 ctx->setMaxTextureSizeOverride(oldMaxTextureSize); 245 ctx->setMaxTextureSizeOverride(oldMaxTextureSize);
246 } 246 }
247 #endif 247 #endif
248 canvas->restore(); 248 canvas->restore();
249 } 249 }
250 } 250 }
251 251
(...skipping 18 matching lines...) Expand all
270 static const int kSmallTextureSize = 6; 270 static const int kSmallTextureSize = 6;
271 static const int kMaxTextureSize = 32; 271 static const int kMaxTextureSize = 32;
272 272
273 SkBitmap fBitmapSmall; 273 SkBitmap fBitmapSmall;
274 SkBitmap fBitmapBig; 274 SkBitmap fBitmapBig;
275 275
276 typedef GM INHERITED; 276 typedef GM INHERITED;
277 }; 277 };
278 278
279 DEF_GM( return new BleedGM(); ) 279 DEF_GM( return new BleedGM(); )
OLDNEW
« no previous file with comments | « gm/bitmapfilters.cpp ('k') | gm/blurquickreject.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698