diff options
author | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-05-15 14:14:04 +0000 |
---|---|---|
committer | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-05-15 14:14:04 +0000 |
commit | 63c57613b8b53d142be6d44aed4ef9e3b9d7cf11 (patch) | |
tree | cdaf281bf1bd64f2be64ea3f7e1e8e5c1d3e039e /bench/ScalarBench.cpp | |
parent | 2e0d727942c26339425bc5ba26189af070081213 (diff) |
add test for computing the bounds of an array of points (SkRect::set)
git-svn-id: http://skia.googlecode.com/svn/trunk@3935 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'bench/ScalarBench.cpp')
-rw-r--r-- | bench/ScalarBench.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/bench/ScalarBench.cpp b/bench/ScalarBench.cpp index 8bedfbdede..8889d7b74f 100644 --- a/bench/ScalarBench.cpp +++ b/bench/ScalarBench.cpp @@ -8,6 +8,7 @@ #include "SkBenchmark.h" #include "SkFloatBits.h" #include "SkRandom.h" +#include "SkRect.h" #include "SkString.h" class ScalarBench : public SkBenchmark { @@ -97,8 +98,46 @@ private: typedef ScalarBench INHERITED; }; +/////////////////////////////////////////////////////////////////////////////// + +class RectBoundsBench : public SkBenchmark { + enum { + PTS = 100, + N = SkBENCHLOOP(10000) + }; + SkPoint fPts[PTS]; + +public: + RectBoundsBench(void* param) : INHERITED(param) { + SkRandom rand; + for (int i = 0; i < PTS; ++i) { + fPts[i].fX = rand.nextSScalar1(); + fPts[i].fY = rand.nextSScalar1(); + } + } + +protected: + virtual const char* onGetName() SK_OVERRIDE { + return "rect_bounds"; + } + + virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { + SkRect r; + for (int i = 0; i < N; ++i) { + r.set(fPts, PTS); + } + } + +private: + typedef SkBenchmark INHERITED; +}; + +/////////////////////////////////////////////////////////////////////////////// + static SkBenchmark* S0(void* p) { return new FloatComparisonBench(p); } static SkBenchmark* S1(void* p) { return new ForcedIntComparisonBench(p); } +static SkBenchmark* S2(void* p) { return new RectBoundsBench(p); } static BenchRegistry gReg0(S0); static BenchRegistry gReg1(S1); +static BenchRegistry gReg2(S2); |