Index: bench/GeometryBench.cpp |
diff --git a/bench/GeometryBench.cpp b/bench/GeometryBench.cpp |
index 24d5c34620d154dd64f6e5bbbcbf6ede9471dcfc..9178aa4b510fdfce639e51742367e0baa28136f6 100644 |
--- a/bench/GeometryBench.cpp |
+++ b/bench/GeometryBench.cpp |
@@ -134,11 +134,11 @@ DEF_BENCH( return new GeoRectBench_sort; ) |
class QuadBenchBase : public GeometryBench { |
protected: |
- SkPoint fPts[3]; |
+ SkPoint fPts[4]; |
public: |
QuadBenchBase(const char name[]) : GeometryBench(name) { |
SkRandom rand; |
- for (int i = 0; i < 3; ++i) { |
+ for (int i = 0; i < 4; ++i) { |
fPts[i].set(rand.nextUScalar1(), rand.nextUScalar1()); |
} |
} |
@@ -244,3 +244,35 @@ protected: |
}; |
DEF_BENCH( return new ChopQuadAt1; ) |
+class ChopCubicAt0 : public QuadBenchBase { |
+public: |
+ ChopCubicAt0() : QuadBenchBase("chopcubicat0") {} |
+protected: |
+ void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE { |
+ SkPoint dst[7]; |
+ for (int outer = 0; outer < loops; ++outer) { |
+ SkChopCubicAt(fPts, dst, 0.5f); |
+ SkChopCubicAt(fPts, dst, 0.5f); |
+ SkChopCubicAt(fPts, dst, 0.5f); |
+ SkChopCubicAt(fPts, dst, 0.5f); |
+ } |
+ } |
+}; |
+DEF_BENCH( return new ChopCubicAt0; ) |
+ |
+class ChopCubicAt1 : public QuadBenchBase { |
+public: |
+ ChopCubicAt1() : QuadBenchBase("chopcubicat1") {} |
+protected: |
+ void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE { |
+ SkPoint dst[7]; |
+ for (int outer = 0; outer < loops; ++outer) { |
+ SkChopCubicAt2(fPts, dst, 0.5f); |
+ SkChopCubicAt2(fPts, dst, 0.5f); |
+ SkChopCubicAt2(fPts, dst, 0.5f); |
+ SkChopCubicAt2(fPts, dst, 0.5f); |
+ } |
+ } |
+}; |
+DEF_BENCH( return new ChopCubicAt1; ) |
+ |