diff options
author | reed <reed@chromium.org> | 2015-03-19 10:18:47 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-03-19 10:18:47 -0700 |
commit | 65cb2cd2f7ad4146f055810b8bd77bff03a4e76e (patch) | |
tree | 25634a85ad23f0010314b65ef31a5826a7f5ec54 /bench/GeometryBench.cpp | |
parent | e053ca4380713a5b9e6a31119a1bdd6d529208aa (diff) |
alt SkEvalQuadAt that returns its answer, using Sk2f
BUG=skia:
Review URL: https://codereview.chromium.org/1011493003
Diffstat (limited to 'bench/GeometryBench.cpp')
-rw-r--r-- | bench/GeometryBench.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/bench/GeometryBench.cpp b/bench/GeometryBench.cpp index fd86effc34..1d8575735f 100644 --- a/bench/GeometryBench.cpp +++ b/bench/GeometryBench.cpp @@ -129,3 +129,49 @@ DEF_BENCH( return new GeoRectBench_intersect_rect; ) DEF_BENCH( return new GeoRectBench_Intersects; ) DEF_BENCH( return new GeoRectBench_sort; ) + +/////////////////////////////////////////////////////////////////////////////////////////////////// + +class EvalQuadAt0 : public GeometryBench { + SkPoint fPts[3]; +public: + EvalQuadAt0() : GeometryBench("evalquadat0") { + SkRandom rand; + for (int i = 0; i < 3; ++i) { + fPts[i].set(rand.nextUScalar1(), rand.nextUScalar1()); + } + } + +protected: + void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE { + SkPoint result; + for (int outer = 0; outer < loops; ++outer) { + for (int i = 0; i < 10000; ++i) { + SkEvalQuadAt(fPts, 0.5f, &result); + } + } + } +}; +DEF_BENCH( return new EvalQuadAt0; ) + +class EvalQuadAt1 : public GeometryBench { + SkPoint fPts[3]; +public: + EvalQuadAt1() : GeometryBench("evalquadat1") { + SkRandom rand; + for (int i = 0; i < 3; ++i) { + fPts[i].set(rand.nextUScalar1(), rand.nextUScalar1()); + } + } + +protected: + void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE { + for (int outer = 0; outer < loops; ++outer) { + for (int i = 0; i < 10000; ++i) { + SkEvalQuadAt(fPts, 0.5f); + } + } + } +}; +DEF_BENCH( return new EvalQuadAt1; ) + |