| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 Google Inc. |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 #include "SkBenchmark.h" | 8 #include "SkBenchmark.h" |
| 9 #include "SkBitmap.h" | 9 #include "SkBitmap.h" |
| 10 #include "SkPaint.h" | 10 #include "SkPaint.h" |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 if (SkBitmap::kIndex8_Config == fConfig) { | 123 if (SkBitmap::kIndex8_Config == fConfig) { |
| 124 convertToIndex666(bm, &fBitmap, fIsOpaque); | 124 convertToIndex666(bm, &fBitmap, fIsOpaque); |
| 125 } else { | 125 } else { |
| 126 fBitmap = bm; | 126 fBitmap = bm; |
| 127 } | 127 } |
| 128 | 128 |
| 129 fBitmap.setAlphaType(fIsOpaque ? kOpaque_SkAlphaType : kPremul_SkAlphaTy
pe); | 129 fBitmap.setAlphaType(fIsOpaque ? kOpaque_SkAlphaType : kPremul_SkAlphaTy
pe); |
| 130 fBitmap.setIsVolatile(fIsVolatile); | 130 fBitmap.setIsVolatile(fIsVolatile); |
| 131 } | 131 } |
| 132 | 132 |
| 133 virtual void onDraw(SkCanvas* canvas) { | 133 virtual void onDraw(const int loops, SkCanvas* canvas) { |
| 134 SkIPoint dim = this->getSize(); | 134 SkIPoint dim = this->getSize(); |
| 135 SkRandom rand; | 135 SkRandom rand; |
| 136 | 136 |
| 137 SkPaint paint(fPaint); | 137 SkPaint paint(fPaint); |
| 138 this->setupPaint(&paint); | 138 this->setupPaint(&paint); |
| 139 | 139 |
| 140 const SkBitmap& bitmap = fBitmap; | 140 const SkBitmap& bitmap = fBitmap; |
| 141 const SkScalar x0 = SkIntToScalar(-bitmap.width() / 2); | 141 const SkScalar x0 = SkIntToScalar(-bitmap.width() / 2); |
| 142 const SkScalar y0 = SkIntToScalar(-bitmap.height() / 2); | 142 const SkScalar y0 = SkIntToScalar(-bitmap.height() / 2); |
| 143 | 143 |
| 144 for (int i = 0; i < this->getLoops(); i++) { | 144 for (int i = 0; i < loops; i++) { |
| 145 SkScalar x = x0 + rand.nextUScalar1() * dim.fX; | 145 SkScalar x = x0 + rand.nextUScalar1() * dim.fX; |
| 146 SkScalar y = y0 + rand.nextUScalar1() * dim.fY; | 146 SkScalar y = y0 + rand.nextUScalar1() * dim.fY; |
| 147 | 147 |
| 148 if (fForceUpdate) | 148 if (fForceUpdate) |
| 149 bitmap.notifyPixelsChanged(); | 149 bitmap.notifyPixelsChanged(); |
| 150 | 150 |
| 151 canvas->drawBitmap(bitmap, x, y, &paint); | 151 canvas->drawBitmap(bitmap, x, y, &paint); |
| 152 } | 152 } |
| 153 } | 153 } |
| 154 | 154 |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 } | 214 } |
| 215 if (isBilerp(fFlags)) { | 215 if (isBilerp(fFlags)) { |
| 216 fFullName.append("_bilerp"); | 216 fFullName.append("_bilerp"); |
| 217 } else if (isBicubic(fFlags)) { | 217 } else if (isBicubic(fFlags)) { |
| 218 fFullName.append("_bicubic"); | 218 fFullName.append("_bicubic"); |
| 219 } | 219 } |
| 220 | 220 |
| 221 return fFullName.c_str(); | 221 return fFullName.c_str(); |
| 222 } | 222 } |
| 223 | 223 |
| 224 virtual void onDraw(SkCanvas* canvas) { | 224 virtual void onDraw(const int loops, SkCanvas* canvas) { |
| 225 SkISize dim = canvas->getDeviceSize(); | 225 SkISize dim = canvas->getDeviceSize(); |
| 226 if (fFlags & kScale_Flag) { | 226 if (fFlags & kScale_Flag) { |
| 227 const SkScalar x = SkIntToScalar(dim.fWidth) / 2; | 227 const SkScalar x = SkIntToScalar(dim.fWidth) / 2; |
| 228 const SkScalar y = SkIntToScalar(dim.fHeight) / 2; | 228 const SkScalar y = SkIntToScalar(dim.fHeight) / 2; |
| 229 | 229 |
| 230 canvas->translate(x, y); | 230 canvas->translate(x, y); |
| 231 // just enough so we can't take the sprite case | 231 // just enough so we can't take the sprite case |
| 232 canvas->scale(SK_Scalar1 * 99/100, SK_Scalar1 * 99/100); | 232 canvas->scale(SK_Scalar1 * 99/100, SK_Scalar1 * 99/100); |
| 233 canvas->translate(-x, -y); | 233 canvas->translate(-x, -y); |
| 234 } | 234 } |
| 235 if (fFlags & kRotate_Flag) { | 235 if (fFlags & kRotate_Flag) { |
| 236 const SkScalar x = SkIntToScalar(dim.fWidth) / 2; | 236 const SkScalar x = SkIntToScalar(dim.fWidth) / 2; |
| 237 const SkScalar y = SkIntToScalar(dim.fHeight) / 2; | 237 const SkScalar y = SkIntToScalar(dim.fHeight) / 2; |
| 238 | 238 |
| 239 canvas->translate(x, y); | 239 canvas->translate(x, y); |
| 240 canvas->rotate(SkIntToScalar(35)); | 240 canvas->rotate(SkIntToScalar(35)); |
| 241 canvas->translate(-x, -y); | 241 canvas->translate(-x, -y); |
| 242 } | 242 } |
| 243 INHERITED::onDraw(canvas); | 243 INHERITED::onDraw(loops, canvas); |
| 244 } | 244 } |
| 245 | 245 |
| 246 virtual void setupPaint(SkPaint* paint) SK_OVERRIDE { | 246 virtual void setupPaint(SkPaint* paint) SK_OVERRIDE { |
| 247 this->INHERITED::setupPaint(paint); | 247 this->INHERITED::setupPaint(paint); |
| 248 | 248 |
| 249 int index = 0; | 249 int index = 0; |
| 250 if (fFlags & kBilerp_Flag) { | 250 if (fFlags & kBilerp_Flag) { |
| 251 index |= 1; | 251 index |= 1; |
| 252 } | 252 } |
| 253 if (fFlags & kBicubic_Flag) { | 253 if (fFlags & kBicubic_Flag) { |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 376 DEF_BENCH( return new FilterBitmapBench(true, SkBitmap::kARGB_8888_Config, true,
false, kScale_Flag | kRotate_Flag | kBilerp_Flag); ) | 376 DEF_BENCH( return new FilterBitmapBench(true, SkBitmap::kARGB_8888_Config, true,
false, kScale_Flag | kRotate_Flag | kBilerp_Flag); ) |
| 377 | 377 |
| 378 DEF_BENCH( return new FilterBitmapBench(false, SkBitmap::kARGB_8888_Config, fals
e, false, kScale_Flag | kBilerp_Flag | kBicubic_Flag); ) | 378 DEF_BENCH( return new FilterBitmapBench(false, SkBitmap::kARGB_8888_Config, fals
e, false, kScale_Flag | kBilerp_Flag | kBicubic_Flag); ) |
| 379 DEF_BENCH( return new FilterBitmapBench(false, SkBitmap::kARGB_8888_Config, fals
e, false, kScale_Flag | kRotate_Flag | kBilerp_Flag | kBicubic_Flag); ) | 379 DEF_BENCH( return new FilterBitmapBench(false, SkBitmap::kARGB_8888_Config, fals
e, false, kScale_Flag | kRotate_Flag | kBilerp_Flag | kBicubic_Flag); ) |
| 380 | 380 |
| 381 // source alpha tests -> S32A_Opaque_BlitRow32_{arm,neon} | 381 // source alpha tests -> S32A_Opaque_BlitRow32_{arm,neon} |
| 382 DEF_BENCH( return new SourceAlphaBitmapBench(SourceAlphaBitmapBench::kOpaque_Sou
rceAlpha, SkBitmap::kARGB_8888_Config); ) | 382 DEF_BENCH( return new SourceAlphaBitmapBench(SourceAlphaBitmapBench::kOpaque_Sou
rceAlpha, SkBitmap::kARGB_8888_Config); ) |
| 383 DEF_BENCH( return new SourceAlphaBitmapBench(SourceAlphaBitmapBench::kTransparen
t_SourceAlpha, SkBitmap::kARGB_8888_Config); ) | 383 DEF_BENCH( return new SourceAlphaBitmapBench(SourceAlphaBitmapBench::kTransparen
t_SourceAlpha, SkBitmap::kARGB_8888_Config); ) |
| 384 DEF_BENCH( return new SourceAlphaBitmapBench(SourceAlphaBitmapBench::kTwoStripes
_SourceAlpha, SkBitmap::kARGB_8888_Config); ) | 384 DEF_BENCH( return new SourceAlphaBitmapBench(SourceAlphaBitmapBench::kTwoStripes
_SourceAlpha, SkBitmap::kARGB_8888_Config); ) |
| 385 DEF_BENCH( return new SourceAlphaBitmapBench(SourceAlphaBitmapBench::kThreeStrip
es_SourceAlpha, SkBitmap::kARGB_8888_Config); ) | 385 DEF_BENCH( return new SourceAlphaBitmapBench(SourceAlphaBitmapBench::kThreeStrip
es_SourceAlpha, SkBitmap::kARGB_8888_Config); ) |
| OLD | NEW |