| OLD | NEW |
| 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 "Benchmark.h" | 8 #include "Benchmark.h" |
| 9 #include "SkMatrix44.h" | 9 #include "SkMatrix44.h" |
| 10 #include "SkRandom.h" | 10 #include "SkRandom.h" |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 } | 241 } |
| 242 } | 242 } |
| 243 private: | 243 private: |
| 244 SkMatrix44 fM0; | 244 SkMatrix44 fM0; |
| 245 SkMScalar fX, fY, fZ; | 245 SkMScalar fX, fY, fZ; |
| 246 typedef Matrix44Bench INHERITED; | 246 typedef Matrix44Bench INHERITED; |
| 247 }; | 247 }; |
| 248 | 248 |
| 249 class SetConcatMatrix44Bench : public Matrix44Bench { | 249 class SetConcatMatrix44Bench : public Matrix44Bench { |
| 250 public: | 250 public: |
| 251 SetConcatMatrix44Bench() | 251 // SkMatrix44::setConcat() has a fast path for matrices that are at most sca
le+translate. |
| 252 : INHERITED("setconcat") | 252 SetConcatMatrix44Bench(bool fastPath) |
| 253 : INHERITED(fastPath ? "setconcat_fast" : "setconcat_general") |
| 253 , fM0(SkMatrix44::kUninitialized_Constructor) | 254 , fM0(SkMatrix44::kUninitialized_Constructor) |
| 254 , fM1(SkMatrix44::kUninitialized_Constructor) | 255 , fM1(SkMatrix44::kUninitialized_Constructor) |
| 255 , fM2(SkMatrix44::kUninitialized_Constructor) | 256 , fM2(SkMatrix44::kUninitialized_Constructor) |
| 256 { | 257 { |
| 257 fX = fY = fZ = SkDoubleToMScalar(1.5); | 258 if (fastPath) { |
| 258 fM1.setScale(fX, fY, fZ); | 259 const SkMScalar v = SkDoubleToMScalar(1.5); |
| 259 fM2.setTranslate(fX, fY, fZ); | 260 fM1.setScale(v,v,v); |
| 261 fM2.setTranslate(v,v,v); |
| 262 } else { |
| 263 SkRandom rand; |
| 264 for (int x = 0; x < 4; x++) { |
| 265 for (int y = 0; y < 4; y++) { |
| 266 fM1.setFloat(x,y, rand.nextF()); |
| 267 fM2.setFloat(x,y, rand.nextF()); |
| 268 }} |
| 269 } |
| 260 } | 270 } |
| 261 protected: | 271 protected: |
| 262 virtual void performTest() { | 272 virtual void performTest() { |
| 263 fM0.reset(); // just to normalize this test with prescale/postscale | 273 fM0.reset(); // just to normalize this test with prescale/postscale |
| 264 for (int i = 0; i < 10; ++i) { | 274 for (int i = 0; i < 10; ++i) { |
| 265 fM0.setConcat(fM1, fM2); | 275 fM0.setConcat(fM1, fM2); |
| 266 } | 276 } |
| 267 } | 277 } |
| 268 private: | 278 private: |
| 269 SkMatrix44 fM0, fM1, fM2; | 279 SkMatrix44 fM0, fM1, fM2; |
| 270 SkMScalar fX, fY, fZ; | |
| 271 typedef Matrix44Bench INHERITED; | 280 typedef Matrix44Bench INHERITED; |
| 272 }; | 281 }; |
| 273 | 282 |
| 274 class GetTypeMatrix44Bench : public Matrix44Bench { | 283 class GetTypeMatrix44Bench : public Matrix44Bench { |
| 275 public: | 284 public: |
| 276 GetTypeMatrix44Bench() | 285 GetTypeMatrix44Bench() |
| 277 : INHERITED("gettype") | 286 : INHERITED("gettype") |
| 278 , fMatrix(SkMatrix44::kIdentity_Constructor) | 287 , fMatrix(SkMatrix44::kIdentity_Constructor) |
| 279 {} | 288 {} |
| 280 protected: | 289 protected: |
| (...skipping 12 matching lines...) Expand all Loading... |
| 293 }; | 302 }; |
| 294 | 303 |
| 295 DEF_BENCH( return new SetIdentityMatrix44Bench(); ) | 304 DEF_BENCH( return new SetIdentityMatrix44Bench(); ) |
| 296 DEF_BENCH( return new EqualsMatrix44Bench(); ) | 305 DEF_BENCH( return new EqualsMatrix44Bench(); ) |
| 297 DEF_BENCH( return new PreScaleMatrix44Bench(); ) | 306 DEF_BENCH( return new PreScaleMatrix44Bench(); ) |
| 298 DEF_BENCH( return new PostScaleMatrix44Bench(); ) | 307 DEF_BENCH( return new PostScaleMatrix44Bench(); ) |
| 299 DEF_BENCH( return new InvertMatrix44Bench(); ) | 308 DEF_BENCH( return new InvertMatrix44Bench(); ) |
| 300 DEF_BENCH( return new InvertAffineMatrix44Bench(); ) | 309 DEF_BENCH( return new InvertAffineMatrix44Bench(); ) |
| 301 DEF_BENCH( return new InvertScaleTranslateMatrix44Bench(); ) | 310 DEF_BENCH( return new InvertScaleTranslateMatrix44Bench(); ) |
| 302 DEF_BENCH( return new InvertTranslateMatrix44Bench(); ) | 311 DEF_BENCH( return new InvertTranslateMatrix44Bench(); ) |
| 303 DEF_BENCH( return new SetConcatMatrix44Bench(); ) | 312 DEF_BENCH( return new SetConcatMatrix44Bench(true); ) |
| 313 DEF_BENCH( return new SetConcatMatrix44Bench(false); ) |
| 304 DEF_BENCH( return new GetTypeMatrix44Bench(); ) | 314 DEF_BENCH( return new GetTypeMatrix44Bench(); ) |
| OLD | NEW |