| 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 "SkCanvas.h" | 10 #include "SkCanvas.h" | 
| (...skipping 12 matching lines...) Expand all  Loading... | 
| 23 #define FLAGS00  Flags(0) | 23 #define FLAGS00  Flags(0) | 
| 24 #define FLAGS01  Flags(kStroke_Flag) | 24 #define FLAGS01  Flags(kStroke_Flag) | 
| 25 #define FLAGS10  Flags(kBig_Flag) | 25 #define FLAGS10  Flags(kBig_Flag) | 
| 26 #define FLAGS11  Flags(kStroke_Flag | kBig_Flag) | 26 #define FLAGS11  Flags(kStroke_Flag | kBig_Flag) | 
| 27 | 27 | 
| 28 class PathBench : public SkBenchmark { | 28 class PathBench : public SkBenchmark { | 
| 29     SkPaint     fPaint; | 29     SkPaint     fPaint; | 
| 30     SkString    fName; | 30     SkString    fName; | 
| 31     Flags       fFlags; | 31     Flags       fFlags; | 
| 32 public: | 32 public: | 
| 33     PathBench(void* param, Flags flags) : INHERITED(param), fFlags(flags) { | 33     PathBench(Flags flags) : fFlags(flags) { | 
| 34         fPaint.setStyle(flags & kStroke_Flag ? SkPaint::kStroke_Style : | 34         fPaint.setStyle(flags & kStroke_Flag ? SkPaint::kStroke_Style : | 
| 35                         SkPaint::kFill_Style); | 35                         SkPaint::kFill_Style); | 
| 36         fPaint.setStrokeWidth(SkIntToScalar(5)); | 36         fPaint.setStrokeWidth(SkIntToScalar(5)); | 
| 37         fPaint.setStrokeJoin(SkPaint::kBevel_Join); | 37         fPaint.setStrokeJoin(SkPaint::kBevel_Join); | 
| 38     } | 38     } | 
| 39 | 39 | 
| 40     virtual void appendName(SkString*) = 0; | 40     virtual void appendName(SkString*) = 0; | 
| 41     virtual void makePath(SkPath*) = 0; | 41     virtual void makePath(SkPath*) = 0; | 
| 42     virtual int complexity() { return 0; } | 42     virtual int complexity() { return 0; } | 
| 43 | 43 | 
| (...skipping 28 matching lines...) Expand all  Loading... | 
| 72             canvas->drawPath(path, paint); | 72             canvas->drawPath(path, paint); | 
| 73         } | 73         } | 
| 74     } | 74     } | 
| 75 | 75 | 
| 76 private: | 76 private: | 
| 77     typedef SkBenchmark INHERITED; | 77     typedef SkBenchmark INHERITED; | 
| 78 }; | 78 }; | 
| 79 | 79 | 
| 80 class TrianglePathBench : public PathBench { | 80 class TrianglePathBench : public PathBench { | 
| 81 public: | 81 public: | 
| 82     TrianglePathBench(void* param, Flags flags) : INHERITED(param, flags) {} | 82     TrianglePathBench(Flags flags) : INHERITED(flags) {} | 
| 83 | 83 | 
| 84     virtual void appendName(SkString* name) SK_OVERRIDE { | 84     virtual void appendName(SkString* name) SK_OVERRIDE { | 
| 85         name->append("triangle"); | 85         name->append("triangle"); | 
| 86     } | 86     } | 
| 87     virtual void makePath(SkPath* path) SK_OVERRIDE { | 87     virtual void makePath(SkPath* path) SK_OVERRIDE { | 
| 88         static const int gCoord[] = { | 88         static const int gCoord[] = { | 
| 89             10, 10, 15, 5, 20, 20 | 89             10, 10, 15, 5, 20, 20 | 
| 90         }; | 90         }; | 
| 91         path->moveTo(SkIntToScalar(gCoord[0]), SkIntToScalar(gCoord[1])); | 91         path->moveTo(SkIntToScalar(gCoord[0]), SkIntToScalar(gCoord[1])); | 
| 92         path->lineTo(SkIntToScalar(gCoord[2]), SkIntToScalar(gCoord[3])); | 92         path->lineTo(SkIntToScalar(gCoord[2]), SkIntToScalar(gCoord[3])); | 
| 93         path->lineTo(SkIntToScalar(gCoord[4]), SkIntToScalar(gCoord[5])); | 93         path->lineTo(SkIntToScalar(gCoord[4]), SkIntToScalar(gCoord[5])); | 
| 94         path->close(); | 94         path->close(); | 
| 95     } | 95     } | 
| 96 private: | 96 private: | 
| 97     typedef PathBench INHERITED; | 97     typedef PathBench INHERITED; | 
| 98 }; | 98 }; | 
| 99 | 99 | 
| 100 class RectPathBench : public PathBench { | 100 class RectPathBench : public PathBench { | 
| 101 public: | 101 public: | 
| 102     RectPathBench(void* param, Flags flags) : INHERITED(param, flags) {} | 102     RectPathBench(Flags flags) : INHERITED(flags) {} | 
| 103 | 103 | 
| 104     virtual void appendName(SkString* name) SK_OVERRIDE { | 104     virtual void appendName(SkString* name) SK_OVERRIDE { | 
| 105         name->append("rect"); | 105         name->append("rect"); | 
| 106     } | 106     } | 
| 107     virtual void makePath(SkPath* path) SK_OVERRIDE { | 107     virtual void makePath(SkPath* path) SK_OVERRIDE { | 
| 108         SkRect r = { 10, 10, 20, 20 }; | 108         SkRect r = { 10, 10, 20, 20 }; | 
| 109         path->addRect(r); | 109         path->addRect(r); | 
| 110     } | 110     } | 
| 111 private: | 111 private: | 
| 112     typedef PathBench INHERITED; | 112     typedef PathBench INHERITED; | 
| 113 }; | 113 }; | 
| 114 | 114 | 
| 115 class OvalPathBench : public PathBench { | 115 class OvalPathBench : public PathBench { | 
| 116 public: | 116 public: | 
| 117     OvalPathBench(void* param, Flags flags) : INHERITED(param, flags) {} | 117     OvalPathBench(Flags flags) : INHERITED(flags) {} | 
| 118 | 118 | 
| 119     virtual void appendName(SkString* name) SK_OVERRIDE { | 119     virtual void appendName(SkString* name) SK_OVERRIDE { | 
| 120         name->append("oval"); | 120         name->append("oval"); | 
| 121     } | 121     } | 
| 122     virtual void makePath(SkPath* path) SK_OVERRIDE { | 122     virtual void makePath(SkPath* path) SK_OVERRIDE { | 
| 123         SkRect r = { 10, 10, 23, 20 }; | 123         SkRect r = { 10, 10, 23, 20 }; | 
| 124         path->addOval(r); | 124         path->addOval(r); | 
| 125     } | 125     } | 
| 126 private: | 126 private: | 
| 127     typedef PathBench INHERITED; | 127     typedef PathBench INHERITED; | 
| 128 }; | 128 }; | 
| 129 | 129 | 
| 130 class CirclePathBench: public PathBench { | 130 class CirclePathBench: public PathBench { | 
| 131 public: | 131 public: | 
| 132     CirclePathBench(void* param, Flags flags) : INHERITED(param, flags) {} | 132     CirclePathBench(Flags flags) : INHERITED(flags) {} | 
| 133 | 133 | 
| 134     virtual void appendName(SkString* name) SK_OVERRIDE { | 134     virtual void appendName(SkString* name) SK_OVERRIDE { | 
| 135         name->append("circle"); | 135         name->append("circle"); | 
| 136     } | 136     } | 
| 137     virtual void makePath(SkPath* path) SK_OVERRIDE { | 137     virtual void makePath(SkPath* path) SK_OVERRIDE { | 
| 138         path->addCircle(SkIntToScalar(20), SkIntToScalar(20), | 138         path->addCircle(SkIntToScalar(20), SkIntToScalar(20), | 
| 139                         SkIntToScalar(10)); | 139                         SkIntToScalar(10)); | 
| 140     } | 140     } | 
| 141 private: | 141 private: | 
| 142     typedef PathBench INHERITED; | 142     typedef PathBench INHERITED; | 
| 143 }; | 143 }; | 
| 144 | 144 | 
| 145 class SawToothPathBench : public PathBench { | 145 class SawToothPathBench : public PathBench { | 
| 146 public: | 146 public: | 
| 147     SawToothPathBench(void* param, Flags flags) : INHERITED(param, flags) {} | 147     SawToothPathBench(Flags flags) : INHERITED(flags) {} | 
| 148 | 148 | 
| 149     virtual void appendName(SkString* name) SK_OVERRIDE { | 149     virtual void appendName(SkString* name) SK_OVERRIDE { | 
| 150         name->append("sawtooth"); | 150         name->append("sawtooth"); | 
| 151     } | 151     } | 
| 152     virtual void makePath(SkPath* path) { | 152     virtual void makePath(SkPath* path) { | 
| 153         SkScalar x = SkIntToScalar(20); | 153         SkScalar x = SkIntToScalar(20); | 
| 154         SkScalar y = SkIntToScalar(20); | 154         SkScalar y = SkIntToScalar(20); | 
| 155         const SkScalar x0 = x; | 155         const SkScalar x0 = x; | 
| 156         const SkScalar dx = SK_Scalar1 * 5; | 156         const SkScalar dx = SK_Scalar1 * 5; | 
| 157         const SkScalar dy = SK_Scalar1 * 10; | 157         const SkScalar dy = SK_Scalar1 * 10; | 
| 158 | 158 | 
| 159         path->moveTo(x, y); | 159         path->moveTo(x, y); | 
| 160         for (int i = 0; i < 32; i++) { | 160         for (int i = 0; i < 32; i++) { | 
| 161             x += dx; | 161             x += dx; | 
| 162             path->lineTo(x, y - dy); | 162             path->lineTo(x, y - dy); | 
| 163             x += dx; | 163             x += dx; | 
| 164             path->lineTo(x, y + dy); | 164             path->lineTo(x, y + dy); | 
| 165         } | 165         } | 
| 166         path->lineTo(x, y + 2 * dy); | 166         path->lineTo(x, y + 2 * dy); | 
| 167         path->lineTo(x0, y + 2 * dy); | 167         path->lineTo(x0, y + 2 * dy); | 
| 168         path->close(); | 168         path->close(); | 
| 169     } | 169     } | 
| 170     virtual int complexity() SK_OVERRIDE { return 1; } | 170     virtual int complexity() SK_OVERRIDE { return 1; } | 
| 171 private: | 171 private: | 
| 172     typedef PathBench INHERITED; | 172     typedef PathBench INHERITED; | 
| 173 }; | 173 }; | 
| 174 | 174 | 
| 175 class LongCurvedPathBench : public PathBench { | 175 class LongCurvedPathBench : public PathBench { | 
| 176 public: | 176 public: | 
| 177     LongCurvedPathBench(void * param, Flags flags) | 177     LongCurvedPathBench(Flags flags) : INHERITED(flags) {} | 
| 178         : INHERITED(param, flags) { |  | 
| 179     } |  | 
| 180 | 178 | 
| 181     virtual void appendName(SkString* name) SK_OVERRIDE { | 179     virtual void appendName(SkString* name) SK_OVERRIDE { | 
| 182         name->append("long_curved"); | 180         name->append("long_curved"); | 
| 183     } | 181     } | 
| 184     virtual void makePath(SkPath* path) SK_OVERRIDE { | 182     virtual void makePath(SkPath* path) SK_OVERRIDE { | 
| 185         SkRandom rand (12); | 183         SkRandom rand (12); | 
| 186         int i; | 184         int i; | 
| 187         for (i = 0; i < 100; i++) { | 185         for (i = 0; i < 100; i++) { | 
| 188             path->quadTo(SkScalarMul(rand.nextUScalar1(), SkIntToScalar(640)), | 186             path->quadTo(SkScalarMul(rand.nextUScalar1(), SkIntToScalar(640)), | 
| 189                          SkScalarMul(rand.nextUScalar1(), SkIntToScalar(480)), | 187                          SkScalarMul(rand.nextUScalar1(), SkIntToScalar(480)), | 
| 190                          SkScalarMul(rand.nextUScalar1(), SkIntToScalar(640)), | 188                          SkScalarMul(rand.nextUScalar1(), SkIntToScalar(640)), | 
| 191                          SkScalarMul(rand.nextUScalar1(), SkIntToScalar(480))); | 189                          SkScalarMul(rand.nextUScalar1(), SkIntToScalar(480))); | 
| 192         } | 190         } | 
| 193         path->close(); | 191         path->close(); | 
| 194     } | 192     } | 
| 195     virtual int complexity() SK_OVERRIDE { return 2; } | 193     virtual int complexity() SK_OVERRIDE { return 2; } | 
| 196 private: | 194 private: | 
| 197     typedef PathBench INHERITED; | 195     typedef PathBench INHERITED; | 
| 198 }; | 196 }; | 
| 199 | 197 | 
| 200 class LongLinePathBench : public PathBench { | 198 class LongLinePathBench : public PathBench { | 
| 201 public: | 199 public: | 
| 202     LongLinePathBench(void * param, Flags flags) | 200     LongLinePathBench(Flags flags) : INHERITED(flags) {} | 
| 203         : INHERITED(param, flags) { |  | 
| 204     } |  | 
| 205 | 201 | 
| 206     virtual void appendName(SkString* name) SK_OVERRIDE { | 202     virtual void appendName(SkString* name) SK_OVERRIDE { | 
| 207         name->append("long_line"); | 203         name->append("long_line"); | 
| 208     } | 204     } | 
| 209     virtual void makePath(SkPath* path) SK_OVERRIDE { | 205     virtual void makePath(SkPath* path) SK_OVERRIDE { | 
| 210         SkRandom rand; | 206         SkRandom rand; | 
| 211         path->moveTo(rand.nextUScalar1() * 640, rand.nextUScalar1() * 480); | 207         path->moveTo(rand.nextUScalar1() * 640, rand.nextUScalar1() * 480); | 
| 212         for (size_t i = 1; i < 100; i++) { | 208         for (size_t i = 1; i < 100; i++) { | 
| 213             path->lineTo(rand.nextUScalar1() * 640, rand.nextUScalar1() * 480); | 209             path->lineTo(rand.nextUScalar1() * 640, rand.nextUScalar1() * 480); | 
| 214         } | 210         } | 
| 215     } | 211     } | 
| 216     virtual int complexity() SK_OVERRIDE { return 2; } | 212     virtual int complexity() SK_OVERRIDE { return 2; } | 
| 217 private: | 213 private: | 
| 218     typedef PathBench INHERITED; | 214     typedef PathBench INHERITED; | 
| 219 }; | 215 }; | 
| 220 | 216 | 
| 221 class RandomPathBench : public SkBenchmark { | 217 class RandomPathBench : public SkBenchmark { | 
| 222 public: | 218 public: | 
| 223     RandomPathBench(void* param) : INHERITED(param) { | 219     RandomPathBench()  { | 
| 224         fIsRendering = false; | 220         fIsRendering = false; | 
| 225     } | 221     } | 
| 226 | 222 | 
| 227 protected: | 223 protected: | 
| 228     void createData(int minVerbs, | 224     void createData(int minVerbs, | 
| 229                     int maxVerbs, | 225                     int maxVerbs, | 
| 230                     bool allowMoves = true, | 226                     bool allowMoves = true, | 
| 231                     SkRect* bounds = NULL) { | 227                     SkRect* bounds = NULL) { | 
| 232         SkRect tempBounds; | 228         SkRect tempBounds; | 
| 233         if (NULL == bounds) { | 229         if (NULL == bounds) { | 
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 314     SkAutoTArray<SkPoint>       fPoints; | 310     SkAutoTArray<SkPoint>       fPoints; | 
| 315     int                         fCurrPath; | 311     int                         fCurrPath; | 
| 316     int                         fCurrVerb; | 312     int                         fCurrVerb; | 
| 317     int                         fCurrPoint; | 313     int                         fCurrPoint; | 
| 318     SkRandom                    fRandom; | 314     SkRandom                    fRandom; | 
| 319     typedef SkBenchmark INHERITED; | 315     typedef SkBenchmark INHERITED; | 
| 320 }; | 316 }; | 
| 321 | 317 | 
| 322 class PathCreateBench : public RandomPathBench { | 318 class PathCreateBench : public RandomPathBench { | 
| 323 public: | 319 public: | 
| 324     PathCreateBench(void* param) : INHERITED(param) { | 320     PathCreateBench()  { | 
| 325     } | 321     } | 
| 326 | 322 | 
| 327 protected: | 323 protected: | 
| 328     virtual const char* onGetName() SK_OVERRIDE { | 324     virtual const char* onGetName() SK_OVERRIDE { | 
| 329         return "path_create"; | 325         return "path_create"; | 
| 330     } | 326     } | 
| 331 | 327 | 
| 332     virtual void onPreDraw() SK_OVERRIDE { | 328     virtual void onPreDraw() SK_OVERRIDE { | 
| 333         this->createData(10, 100); | 329         this->createData(10, 100); | 
| 334         fPaths.reset(kPathCnt); | 330         fPaths.reset(kPathCnt); | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
| 351         // must be a pow 2 | 347         // must be a pow 2 | 
| 352         kPathCnt = 1 << 5, | 348         kPathCnt = 1 << 5, | 
| 353     }; | 349     }; | 
| 354     SkAutoTArray<SkPath> fPaths; | 350     SkAutoTArray<SkPath> fPaths; | 
| 355 | 351 | 
| 356     typedef RandomPathBench INHERITED; | 352     typedef RandomPathBench INHERITED; | 
| 357 }; | 353 }; | 
| 358 | 354 | 
| 359 class PathCopyBench : public RandomPathBench { | 355 class PathCopyBench : public RandomPathBench { | 
| 360 public: | 356 public: | 
| 361     PathCopyBench(void* param) : INHERITED(param) { | 357     PathCopyBench()  { | 
| 362     } | 358     } | 
| 363 | 359 | 
| 364 protected: | 360 protected: | 
| 365     virtual const char* onGetName() SK_OVERRIDE { | 361     virtual const char* onGetName() SK_OVERRIDE { | 
| 366         return "path_copy"; | 362         return "path_copy"; | 
| 367     } | 363     } | 
| 368     virtual void onPreDraw() SK_OVERRIDE { | 364     virtual void onPreDraw() SK_OVERRIDE { | 
| 369         this->createData(10, 100); | 365         this->createData(10, 100); | 
| 370         fPaths.reset(kPathCnt); | 366         fPaths.reset(kPathCnt); | 
| 371         fCopies.reset(kPathCnt); | 367         fCopies.reset(kPathCnt); | 
| (...skipping 19 matching lines...) Expand all  Loading... | 
| 391         kPathCnt = 1 << 5, | 387         kPathCnt = 1 << 5, | 
| 392     }; | 388     }; | 
| 393     SkAutoTArray<SkPath> fPaths; | 389     SkAutoTArray<SkPath> fPaths; | 
| 394     SkAutoTArray<SkPath> fCopies; | 390     SkAutoTArray<SkPath> fCopies; | 
| 395 | 391 | 
| 396     typedef RandomPathBench INHERITED; | 392     typedef RandomPathBench INHERITED; | 
| 397 }; | 393 }; | 
| 398 | 394 | 
| 399 class PathTransformBench : public RandomPathBench { | 395 class PathTransformBench : public RandomPathBench { | 
| 400 public: | 396 public: | 
| 401     PathTransformBench(bool inPlace, void* param) | 397     PathTransformBench(bool inPlace) : fInPlace(inPlace) {} | 
| 402         : INHERITED(param) |  | 
| 403         , fInPlace(inPlace) { |  | 
| 404     } |  | 
| 405 | 398 | 
| 406 protected: | 399 protected: | 
| 407     virtual const char* onGetName() SK_OVERRIDE { | 400     virtual const char* onGetName() SK_OVERRIDE { | 
| 408         return fInPlace ? "path_transform_in_place" : "path_transform_copy"; | 401         return fInPlace ? "path_transform_in_place" : "path_transform_copy"; | 
| 409     } | 402     } | 
| 410 | 403 | 
| 411     virtual void onPreDraw() SK_OVERRIDE { | 404     virtual void onPreDraw() SK_OVERRIDE { | 
| 412         fMatrix.setScale(5 * SK_Scalar1, 6 * SK_Scalar1); | 405         fMatrix.setScale(5 * SK_Scalar1, 6 * SK_Scalar1); | 
| 413         this->createData(10, 100); | 406         this->createData(10, 100); | 
| 414         fPaths.reset(kPathCnt); | 407         fPaths.reset(kPathCnt); | 
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 447     SkAutoTArray<SkPath> fPaths; | 440     SkAutoTArray<SkPath> fPaths; | 
| 448     SkAutoTArray<SkPath> fTransformed; | 441     SkAutoTArray<SkPath> fTransformed; | 
| 449 | 442 | 
| 450     SkMatrix fMatrix; | 443     SkMatrix fMatrix; | 
| 451     bool fInPlace; | 444     bool fInPlace; | 
| 452     typedef RandomPathBench INHERITED; | 445     typedef RandomPathBench INHERITED; | 
| 453 }; | 446 }; | 
| 454 | 447 | 
| 455 class PathEqualityBench : public RandomPathBench { | 448 class PathEqualityBench : public RandomPathBench { | 
| 456 public: | 449 public: | 
| 457     PathEqualityBench(void* param) | 450     PathEqualityBench() { } | 
| 458         : INHERITED(param) { |  | 
| 459     } |  | 
| 460 | 451 | 
| 461 protected: | 452 protected: | 
| 462     virtual const char* onGetName() SK_OVERRIDE { | 453     virtual const char* onGetName() SK_OVERRIDE { | 
| 463         return "path_equality_50%"; | 454         return "path_equality_50%"; | 
| 464     } | 455     } | 
| 465 | 456 | 
| 466     virtual void onPreDraw() SK_OVERRIDE { | 457     virtual void onPreDraw() SK_OVERRIDE { | 
| 467         fParity = 0; | 458         fParity = 0; | 
| 468         this->createData(10, 100); | 459         this->createData(10, 100); | 
| 469         fPaths.reset(kPathCnt); | 460         fPaths.reset(kPathCnt); | 
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 502 public: | 493 public: | 
| 503     enum AddType { | 494     enum AddType { | 
| 504         kAdd_AddType, | 495         kAdd_AddType, | 
| 505         kAddTrans_AddType, | 496         kAddTrans_AddType, | 
| 506         kAddMatrix_AddType, | 497         kAddMatrix_AddType, | 
| 507         kPathTo_AddType, | 498         kPathTo_AddType, | 
| 508         kReverseAdd_AddType, | 499         kReverseAdd_AddType, | 
| 509         kReversePathTo_AddType, | 500         kReversePathTo_AddType, | 
| 510     }; | 501     }; | 
| 511 | 502 | 
| 512     SkBench_AddPathTest(AddType type, void* param) | 503     SkBench_AddPathTest(AddType type) : fType(type) { | 
| 513         : INHERITED(param) |  | 
| 514         , fType(type) { |  | 
| 515         fMatrix.setRotate(60 * SK_Scalar1); | 504         fMatrix.setRotate(60 * SK_Scalar1); | 
| 516     } | 505     } | 
| 517 | 506 | 
| 518 protected: | 507 protected: | 
| 519     virtual const char* onGetName() SK_OVERRIDE { | 508     virtual const char* onGetName() SK_OVERRIDE { | 
| 520         switch (fType) { | 509         switch (fType) { | 
| 521             case kAdd_AddType: | 510             case kAdd_AddType: | 
| 522                 return "path_add_path"; | 511                 return "path_add_path"; | 
| 523             case kAddTrans_AddType: | 512             case kAddTrans_AddType: | 
| 524                 return "path_add_path_trans"; | 513                 return "path_add_path_trans"; | 
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 614     typedef RandomPathBench INHERITED; | 603     typedef RandomPathBench INHERITED; | 
| 615 }; | 604 }; | 
| 616 | 605 | 
| 617 | 606 | 
| 618 class CirclesBench : public SkBenchmark { | 607 class CirclesBench : public SkBenchmark { | 
| 619 protected: | 608 protected: | 
| 620     SkString            fName; | 609     SkString            fName; | 
| 621     Flags               fFlags; | 610     Flags               fFlags; | 
| 622 | 611 | 
| 623 public: | 612 public: | 
| 624     CirclesBench(void* param, Flags flags) : INHERITED(param), fFlags(flags) { | 613     CirclesBench(Flags flags) : fFlags(flags) { | 
| 625         fName.printf("circles_%s", fFlags & kStroke_Flag ? "stroke" : "fill"); | 614         fName.printf("circles_%s", fFlags & kStroke_Flag ? "stroke" : "fill"); | 
| 626     } | 615     } | 
| 627 | 616 | 
| 628 protected: | 617 protected: | 
| 629     virtual const char* onGetName() SK_OVERRIDE { | 618     virtual const char* onGetName() SK_OVERRIDE { | 
| 630         return fName.c_str(); | 619         return fName.c_str(); | 
| 631     } | 620     } | 
| 632 | 621 | 
| 633     virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { | 622     virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { | 
| 634         SkPaint paint; | 623         SkPaint paint; | 
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 674 // Chrome creates its own round rects with each corner possibly being different. | 663 // Chrome creates its own round rects with each corner possibly being different. | 
| 675 // In its "zero radius" incarnation it creates degenerate round rects. | 664 // In its "zero radius" incarnation it creates degenerate round rects. | 
| 676 // Note: PathTest::test_arb_round_rect_is_convex and | 665 // Note: PathTest::test_arb_round_rect_is_convex and | 
| 677 // test_arb_zero_rad_round_rect_is_rect perform almost exactly | 666 // test_arb_zero_rad_round_rect_is_rect perform almost exactly | 
| 678 // the same test (but with no drawing) | 667 // the same test (but with no drawing) | 
| 679 class ArbRoundRectBench : public SkBenchmark { | 668 class ArbRoundRectBench : public SkBenchmark { | 
| 680 protected: | 669 protected: | 
| 681     SkString            fName; | 670     SkString            fName; | 
| 682 | 671 | 
| 683 public: | 672 public: | 
| 684     ArbRoundRectBench(void* param, bool zeroRad) : INHERITED(param), fZeroRad(ze
      roRad) { | 673     ArbRoundRectBench(bool zeroRad) : fZeroRad(zeroRad) { | 
| 685         if (zeroRad) { | 674         if (zeroRad) { | 
| 686             fName.printf("zeroradroundrect"); | 675             fName.printf("zeroradroundrect"); | 
| 687         } else { | 676         } else { | 
| 688             fName.printf("arbroundrect"); | 677             fName.printf("arbroundrect"); | 
| 689         } | 678         } | 
| 690     } | 679     } | 
| 691 | 680 | 
| 692 protected: | 681 protected: | 
| 693     virtual const char* onGetName() SK_OVERRIDE { | 682     virtual const char* onGetName() SK_OVERRIDE { | 
| 694         return fName.c_str(); | 683         return fName.c_str(); | 
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 775 }; | 764 }; | 
| 776 | 765 | 
| 777 class ConservativelyContainsBench : public SkBenchmark { | 766 class ConservativelyContainsBench : public SkBenchmark { | 
| 778 public: | 767 public: | 
| 779     enum Type { | 768     enum Type { | 
| 780         kRect_Type, | 769         kRect_Type, | 
| 781         kRoundRect_Type, | 770         kRoundRect_Type, | 
| 782         kOval_Type, | 771         kOval_Type, | 
| 783     }; | 772     }; | 
| 784 | 773 | 
| 785     ConservativelyContainsBench(void* param, Type type) : INHERITED(param) { | 774     ConservativelyContainsBench(Type type)  { | 
| 786         fIsRendering = false; | 775         fIsRendering = false; | 
| 787         fParity = false; | 776         fParity = false; | 
| 788         fName = "conservatively_contains_"; | 777         fName = "conservatively_contains_"; | 
| 789         switch (type) { | 778         switch (type) { | 
| 790             case kRect_Type: | 779             case kRect_Type: | 
| 791                 fName.append("rect"); | 780                 fName.append("rect"); | 
| 792                 fPath.addRect(kBaseRect); | 781                 fPath.addRect(kBaseRect); | 
| 793                 break; | 782                 break; | 
| 794             case kRoundRect_Type: | 783             case kRoundRect_Type: | 
| 795                 fName.append("round_rect"); | 784                 fName.append("round_rect"); | 
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 851     typedef SkBenchmark INHERITED; | 840     typedef SkBenchmark INHERITED; | 
| 852 }; | 841 }; | 
| 853 | 842 | 
| 854 /////////////////////////////////////////////////////////////////////////////// | 843 /////////////////////////////////////////////////////////////////////////////// | 
| 855 | 844 | 
| 856 #include "SkGeometry.h" | 845 #include "SkGeometry.h" | 
| 857 | 846 | 
| 858 class ConicBench_Chop5 : public SkBenchmark { | 847 class ConicBench_Chop5 : public SkBenchmark { | 
| 859     SkConic fRQ; | 848     SkConic fRQ; | 
| 860 public: | 849 public: | 
| 861     ConicBench_Chop5(void* param) : INHERITED(param) { | 850     ConicBench_Chop5()  { | 
| 862         fRQ.fPts[0].set(0, 0); | 851         fRQ.fPts[0].set(0, 0); | 
| 863         fRQ.fPts[1].set(100, 0); | 852         fRQ.fPts[1].set(100, 0); | 
| 864         fRQ.fPts[2].set(100, 100); | 853         fRQ.fPts[2].set(100, 100); | 
| 865         fRQ.fW = SkScalarCos(SK_ScalarPI/4); | 854         fRQ.fW = SkScalarCos(SK_ScalarPI/4); | 
| 866     } | 855     } | 
| 867 | 856 | 
| 868 private: | 857 private: | 
| 869     virtual const char* onGetName() SK_OVERRIDE { | 858     virtual const char* onGetName() SK_OVERRIDE { | 
| 870         return "ratquad-chop-0.5"; | 859         return "ratquad-chop-0.5"; | 
| 871     } | 860     } | 
| 872 | 861 | 
| 873     virtual void onDraw(SkCanvas*) SK_OVERRIDE { | 862     virtual void onDraw(SkCanvas*) SK_OVERRIDE { | 
| 874         SkConic dst[2]; | 863         SkConic dst[2]; | 
| 875         for (int i = 0; i < this->getLoops(); ++i) { | 864         for (int i = 0; i < this->getLoops(); ++i) { | 
| 876             fRQ.chopAt(0.5f, dst); | 865             fRQ.chopAt(0.5f, dst); | 
| 877         } | 866         } | 
| 878     } | 867     } | 
| 879 | 868 | 
| 880     typedef SkBenchmark INHERITED; | 869     typedef SkBenchmark INHERITED; | 
| 881 }; | 870 }; | 
| 882 | 871 | 
| 883 class ConicBench_ChopHalf : public SkBenchmark { | 872 class ConicBench_ChopHalf : public SkBenchmark { | 
| 884     SkConic fRQ; | 873     SkConic fRQ; | 
| 885 public: | 874 public: | 
| 886     ConicBench_ChopHalf(void* param) : INHERITED(param) { | 875     ConicBench_ChopHalf()  { | 
| 887         fRQ.fPts[0].set(0, 0); | 876         fRQ.fPts[0].set(0, 0); | 
| 888         fRQ.fPts[1].set(100, 0); | 877         fRQ.fPts[1].set(100, 0); | 
| 889         fRQ.fPts[2].set(100, 100); | 878         fRQ.fPts[2].set(100, 100); | 
| 890         fRQ.fW = SkScalarCos(SK_ScalarPI/4); | 879         fRQ.fW = SkScalarCos(SK_ScalarPI/4); | 
| 891     } | 880     } | 
| 892 | 881 | 
| 893 private: | 882 private: | 
| 894     virtual const char* onGetName() SK_OVERRIDE { | 883     virtual const char* onGetName() SK_OVERRIDE { | 
| 895         return "ratquad-chop-half"; | 884         return "ratquad-chop-half"; | 
| 896     } | 885     } | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
| 913     } | 902     } | 
| 914     if (rand.nextUScalar1() > 0.5f) { | 903     if (rand.nextUScalar1() > 0.5f) { | 
| 915         conic->fW = rand.nextUScalar1(); | 904         conic->fW = rand.nextUScalar1(); | 
| 916     } else { | 905     } else { | 
| 917         conic->fW = 1 + rand.nextUScalar1() * 4; | 906         conic->fW = 1 + rand.nextUScalar1() * 4; | 
| 918     } | 907     } | 
| 919 } | 908 } | 
| 920 | 909 | 
| 921 class ConicBench : public SkBenchmark { | 910 class ConicBench : public SkBenchmark { | 
| 922 public: | 911 public: | 
| 923     ConicBench(void* param) : INHERITED(param) { | 912     ConicBench()  { | 
| 924         SkRandom rand; | 913         SkRandom rand; | 
| 925         for (int i = 0; i < CONICS; ++i) { | 914         for (int i = 0; i < CONICS; ++i) { | 
| 926             rand_conic(&fConics[i], rand); | 915             rand_conic(&fConics[i], rand); | 
| 927         } | 916         } | 
| 928         fIsRendering = false; | 917         fIsRendering = false; | 
| 929     } | 918     } | 
| 930 | 919 | 
| 931 protected: | 920 protected: | 
| 932     enum { | 921     enum { | 
| 933         CONICS = 100 | 922         CONICS = 100 | 
| 934     }; | 923     }; | 
| 935     SkConic fConics[CONICS]; | 924     SkConic fConics[CONICS]; | 
| 936 | 925 | 
| 937 private: | 926 private: | 
| 938     typedef SkBenchmark INHERITED; | 927     typedef SkBenchmark INHERITED; | 
| 939 }; | 928 }; | 
| 940 | 929 | 
| 941 class ConicBench_ComputeError : public ConicBench { | 930 class ConicBench_ComputeError : public ConicBench { | 
| 942 public: | 931 public: | 
| 943     ConicBench_ComputeError(void* param) : INHERITED(param) {} | 932     ConicBench_ComputeError()  {} | 
| 944 | 933 | 
| 945 protected: | 934 protected: | 
| 946     virtual const char* onGetName() SK_OVERRIDE { | 935     virtual const char* onGetName() SK_OVERRIDE { | 
| 947         return "conic-compute-error"; | 936         return "conic-compute-error"; | 
| 948     } | 937     } | 
| 949 | 938 | 
| 950     virtual void onDraw(SkCanvas*) SK_OVERRIDE { | 939     virtual void onDraw(SkCanvas*) SK_OVERRIDE { | 
| 951         SkVector err; | 940         SkVector err; | 
| 952         for (int i = 0; i < this->getLoops(); ++i) { | 941         for (int i = 0; i < this->getLoops(); ++i) { | 
| 953             for (int j = 0; j < CONICS; ++j) { | 942             for (int j = 0; j < CONICS; ++j) { | 
| 954                 fConics[j].computeAsQuadError(&err); | 943                 fConics[j].computeAsQuadError(&err); | 
| 955             } | 944             } | 
| 956         } | 945         } | 
| 957     } | 946     } | 
| 958 | 947 | 
| 959 private: | 948 private: | 
| 960     typedef ConicBench INHERITED; | 949     typedef ConicBench INHERITED; | 
| 961 }; | 950 }; | 
| 962 | 951 | 
| 963 class ConicBench_asQuadTol : public ConicBench { | 952 class ConicBench_asQuadTol : public ConicBench { | 
| 964 public: | 953 public: | 
| 965     ConicBench_asQuadTol(void* param) : INHERITED(param) {} | 954     ConicBench_asQuadTol()  {} | 
| 966 | 955 | 
| 967 protected: | 956 protected: | 
| 968     virtual const char* onGetName() SK_OVERRIDE { | 957     virtual const char* onGetName() SK_OVERRIDE { | 
| 969         return "conic-asQuadTol"; | 958         return "conic-asQuadTol"; | 
| 970     } | 959     } | 
| 971 | 960 | 
| 972     virtual void onDraw(SkCanvas*) SK_OVERRIDE { | 961     virtual void onDraw(SkCanvas*) SK_OVERRIDE { | 
| 973         for (int i = 0; i < this->getLoops(); ++i) { | 962         for (int i = 0; i < this->getLoops(); ++i) { | 
| 974             for (int j = 0; j < CONICS; ++j) { | 963             for (int j = 0; j < CONICS; ++j) { | 
| 975                 fConics[j].asQuadTol(SK_ScalarHalf); | 964                 fConics[j].asQuadTol(SK_ScalarHalf); | 
| 976             } | 965             } | 
| 977         } | 966         } | 
| 978     } | 967     } | 
| 979 | 968 | 
| 980 private: | 969 private: | 
| 981     typedef ConicBench INHERITED; | 970     typedef ConicBench INHERITED; | 
| 982 }; | 971 }; | 
| 983 | 972 | 
| 984 class ConicBench_quadPow2 : public ConicBench { | 973 class ConicBench_quadPow2 : public ConicBench { | 
| 985 public: | 974 public: | 
| 986     ConicBench_quadPow2(void* param) : INHERITED(param) {} | 975     ConicBench_quadPow2()  {} | 
| 987 | 976 | 
| 988 protected: | 977 protected: | 
| 989     virtual const char* onGetName() SK_OVERRIDE { | 978     virtual const char* onGetName() SK_OVERRIDE { | 
| 990         return "conic-quadPow2"; | 979         return "conic-quadPow2"; | 
| 991     } | 980     } | 
| 992 | 981 | 
| 993     virtual void onDraw(SkCanvas*) SK_OVERRIDE { | 982     virtual void onDraw(SkCanvas*) SK_OVERRIDE { | 
| 994         for (int i = 0; i < this->getLoops(); ++i) { | 983         for (int i = 0; i < this->getLoops(); ++i) { | 
| 995             for (int j = 0; j < CONICS; ++j) { | 984             for (int j = 0; j < CONICS; ++j) { | 
| 996                 fConics[j].computeQuadPOW2(SK_ScalarHalf); | 985                 fConics[j].computeQuadPOW2(SK_ScalarHalf); | 
| 997             } | 986             } | 
| 998         } | 987         } | 
| 999     } | 988     } | 
| 1000 | 989 | 
| 1001 private: | 990 private: | 
| 1002     typedef ConicBench INHERITED; | 991     typedef ConicBench INHERITED; | 
| 1003 }; | 992 }; | 
| 1004 | 993 | 
| 1005 /////////////////////////////////////////////////////////////////////////////// | 994 /////////////////////////////////////////////////////////////////////////////// | 
| 1006 | 995 | 
| 1007 const SkRect ConservativelyContainsBench::kBounds = SkRect::MakeWH(SkIntToScalar
      (100), SkIntToScalar(100)); | 996 const SkRect ConservativelyContainsBench::kBounds = SkRect::MakeWH(SkIntToScalar
      (100), SkIntToScalar(100)); | 
| 1008 const SkSize ConservativelyContainsBench::kQueryMin = SkSize::Make(SkIntToScalar
      (1), SkIntToScalar(1)); | 997 const SkSize ConservativelyContainsBench::kQueryMin = SkSize::Make(SkIntToScalar
      (1), SkIntToScalar(1)); | 
| 1009 const SkSize ConservativelyContainsBench::kQueryMax = SkSize::Make(SkIntToScalar
      (40), SkIntToScalar(40)); | 998 const SkSize ConservativelyContainsBench::kQueryMax = SkSize::Make(SkIntToScalar
      (40), SkIntToScalar(40)); | 
| 1010 const SkRect ConservativelyContainsBench::kBaseRect = SkRect::MakeXYWH(SkIntToSc
      alar(25), SkIntToScalar(25), SkIntToScalar(50), SkIntToScalar(50)); | 999 const SkRect ConservativelyContainsBench::kBaseRect = SkRect::MakeXYWH(SkIntToSc
      alar(25), SkIntToScalar(25), SkIntToScalar(50), SkIntToScalar(50)); | 
| 1011 const SkScalar ConservativelyContainsBench::kRRRadii[2] = {SkIntToScalar(5), SkI
      ntToScalar(10)}; | 1000 const SkScalar ConservativelyContainsBench::kRRRadii[2] = {SkIntToScalar(5), SkI
      ntToScalar(10)}; | 
| 1012 | 1001 | 
| 1013 DEF_BENCH( return new TrianglePathBench(p, FLAGS00); ) | 1002 DEF_BENCH( return new TrianglePathBench(FLAGS00); ) | 
| 1014 DEF_BENCH( return new TrianglePathBench(p, FLAGS01); ) | 1003 DEF_BENCH( return new TrianglePathBench(FLAGS01); ) | 
| 1015 DEF_BENCH( return new TrianglePathBench(p, FLAGS10); ) | 1004 DEF_BENCH( return new TrianglePathBench(FLAGS10); ) | 
| 1016 DEF_BENCH( return new TrianglePathBench(p, FLAGS11); ) | 1005 DEF_BENCH( return new TrianglePathBench(FLAGS11); ) | 
| 1017 | 1006 | 
| 1018 DEF_BENCH( return new RectPathBench(p, FLAGS00); ) | 1007 DEF_BENCH( return new RectPathBench(FLAGS00); ) | 
| 1019 DEF_BENCH( return new RectPathBench(p, FLAGS01); ) | 1008 DEF_BENCH( return new RectPathBench(FLAGS01); ) | 
| 1020 DEF_BENCH( return new RectPathBench(p, FLAGS10); ) | 1009 DEF_BENCH( return new RectPathBench(FLAGS10); ) | 
| 1021 DEF_BENCH( return new RectPathBench(p, FLAGS11); ) | 1010 DEF_BENCH( return new RectPathBench(FLAGS11); ) | 
| 1022 | 1011 | 
| 1023 DEF_BENCH( return new OvalPathBench(p, FLAGS00); ) | 1012 DEF_BENCH( return new OvalPathBench(FLAGS00); ) | 
| 1024 DEF_BENCH( return new OvalPathBench(p, FLAGS01); ) | 1013 DEF_BENCH( return new OvalPathBench(FLAGS01); ) | 
| 1025 DEF_BENCH( return new OvalPathBench(p, FLAGS10); ) | 1014 DEF_BENCH( return new OvalPathBench(FLAGS10); ) | 
| 1026 DEF_BENCH( return new OvalPathBench(p, FLAGS11); ) | 1015 DEF_BENCH( return new OvalPathBench(FLAGS11); ) | 
| 1027 | 1016 | 
| 1028 DEF_BENCH( return new CirclePathBench(p, FLAGS00); ) | 1017 DEF_BENCH( return new CirclePathBench(FLAGS00); ) | 
| 1029 DEF_BENCH( return new CirclePathBench(p, FLAGS01); ) | 1018 DEF_BENCH( return new CirclePathBench(FLAGS01); ) | 
| 1030 DEF_BENCH( return new CirclePathBench(p, FLAGS10); ) | 1019 DEF_BENCH( return new CirclePathBench(FLAGS10); ) | 
| 1031 DEF_BENCH( return new CirclePathBench(p, FLAGS11); ) | 1020 DEF_BENCH( return new CirclePathBench(FLAGS11); ) | 
| 1032 | 1021 | 
| 1033 DEF_BENCH( return new SawToothPathBench(p, FLAGS00); ) | 1022 DEF_BENCH( return new SawToothPathBench(FLAGS00); ) | 
| 1034 DEF_BENCH( return new SawToothPathBench(p, FLAGS01); ) | 1023 DEF_BENCH( return new SawToothPathBench(FLAGS01); ) | 
| 1035 | 1024 | 
| 1036 DEF_BENCH( return new LongCurvedPathBench(p, FLAGS00); ) | 1025 DEF_BENCH( return new LongCurvedPathBench(FLAGS00); ) | 
| 1037 DEF_BENCH( return new LongCurvedPathBench(p, FLAGS01); ) | 1026 DEF_BENCH( return new LongCurvedPathBench(FLAGS01); ) | 
| 1038 DEF_BENCH( return new LongLinePathBench(p, FLAGS00); ) | 1027 DEF_BENCH( return new LongLinePathBench(FLAGS00); ) | 
| 1039 DEF_BENCH( return new LongLinePathBench(p, FLAGS01); ) | 1028 DEF_BENCH( return new LongLinePathBench(FLAGS01); ) | 
| 1040 | 1029 | 
| 1041 DEF_BENCH( return new PathCreateBench(p); ) | 1030 DEF_BENCH( return new PathCreateBench(); ) | 
| 1042 DEF_BENCH( return new PathCopyBench(p); ) | 1031 DEF_BENCH( return new PathCopyBench(); ) | 
| 1043 DEF_BENCH( return new PathTransformBench(true, p); ) | 1032 DEF_BENCH( return new PathTransformBench(true); ) | 
| 1044 DEF_BENCH( return new PathTransformBench(false, p); ) | 1033 DEF_BENCH( return new PathTransformBench(false); ) | 
| 1045 DEF_BENCH( return new PathEqualityBench(p); ) | 1034 DEF_BENCH( return new PathEqualityBench(); ) | 
| 1046 | 1035 | 
| 1047 DEF_BENCH( return new SkBench_AddPathTest(SkBench_AddPathTest::kAdd_AddType, p);
       ) | 1036 DEF_BENCH( return new SkBench_AddPathTest(SkBench_AddPathTest::kAdd_AddType); ) | 
| 1048 DEF_BENCH( return new SkBench_AddPathTest(SkBench_AddPathTest::kAddTrans_AddType
      , p); ) | 1037 DEF_BENCH( return new SkBench_AddPathTest(SkBench_AddPathTest::kAddTrans_AddType
      ); ) | 
| 1049 DEF_BENCH( return new SkBench_AddPathTest(SkBench_AddPathTest::kAddMatrix_AddTyp
      e, p); ) | 1038 DEF_BENCH( return new SkBench_AddPathTest(SkBench_AddPathTest::kAddMatrix_AddTyp
      e); ) | 
| 1050 DEF_BENCH( return new SkBench_AddPathTest(SkBench_AddPathTest::kPathTo_AddType, 
      p); ) | 1039 DEF_BENCH( return new SkBench_AddPathTest(SkBench_AddPathTest::kPathTo_AddType);
       ) | 
| 1051 DEF_BENCH( return new SkBench_AddPathTest(SkBench_AddPathTest::kReverseAdd_AddTy
      pe, p); ) | 1040 DEF_BENCH( return new SkBench_AddPathTest(SkBench_AddPathTest::kReverseAdd_AddTy
      pe); ) | 
| 1052 DEF_BENCH( return new SkBench_AddPathTest(SkBench_AddPathTest::kReversePathTo_Ad
      dType, p); ) | 1041 DEF_BENCH( return new SkBench_AddPathTest(SkBench_AddPathTest::kReversePathTo_Ad
      dType); ) | 
| 1053 | 1042 | 
| 1054 DEF_BENCH( return new CirclesBench(p, FLAGS00); ) | 1043 DEF_BENCH( return new CirclesBench(FLAGS00); ) | 
| 1055 DEF_BENCH( return new CirclesBench(p, FLAGS01); ) | 1044 DEF_BENCH( return new CirclesBench(FLAGS01); ) | 
| 1056 DEF_BENCH( return new ArbRoundRectBench(p, false); ) | 1045 DEF_BENCH( return new ArbRoundRectBench(false); ) | 
| 1057 DEF_BENCH( return new ArbRoundRectBench(p, true); ) | 1046 DEF_BENCH( return new ArbRoundRectBench(true); ) | 
| 1058 DEF_BENCH( return new ConservativelyContainsBench(p, ConservativelyContainsBench
      ::kRect_Type); ) | 1047 DEF_BENCH( return new ConservativelyContainsBench(ConservativelyContainsBench::k
      Rect_Type); ) | 
| 1059 DEF_BENCH( return new ConservativelyContainsBench(p, ConservativelyContainsBench
      ::kRoundRect_Type); ) | 1048 DEF_BENCH( return new ConservativelyContainsBench(ConservativelyContainsBench::k
      RoundRect_Type); ) | 
| 1060 DEF_BENCH( return new ConservativelyContainsBench(p, ConservativelyContainsBench
      ::kOval_Type); ) | 1049 DEF_BENCH( return new ConservativelyContainsBench(ConservativelyContainsBench::k
      Oval_Type); ) | 
| 1061 | 1050 | 
| 1062 DEF_BENCH( return new ConicBench_Chop5(p) ) | 1051 DEF_BENCH( return new ConicBench_Chop5() ) | 
| 1063 DEF_BENCH( return new ConicBench_ChopHalf(p) ) | 1052 DEF_BENCH( return new ConicBench_ChopHalf() ) | 
| 1064 DEF_BENCH( return new ConicBench_ComputeError(p) ) | 1053 DEF_BENCH( return new ConicBench_ComputeError() ) | 
| 1065 DEF_BENCH( return new ConicBench_asQuadTol(p) ) | 1054 DEF_BENCH( return new ConicBench_asQuadTol() ) | 
| 1066 DEF_BENCH( return new ConicBench_quadPow2(p) ) | 1055 DEF_BENCH( return new ConicBench_quadPow2() ) | 
| OLD | NEW | 
|---|