| Index: bench/MathBench.cpp
|
| diff --git a/bench/MathBench.cpp b/bench/MathBench.cpp
|
| index 1fc5705be829946e2b4f00a55562985f796994d0..32a89d64efd9263033207ad9757c00d6361a1dc1 100644
|
| --- a/bench/MathBench.cpp
|
| +++ b/bench/MathBench.cpp
|
| @@ -480,6 +480,48 @@ private:
|
|
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|
| +class FixedMathBench : public SkBenchmark {
|
| + enum {
|
| + N = SkBENCHLOOP(1000),
|
| + NN = SkBENCHLOOP(1000),
|
| + };
|
| + float fData[N];
|
| + SkFixed fResult[N];
|
| +public:
|
| +
|
| + FixedMathBench(void* param) : INHERITED(param) {
|
| + SkRandom rand;
|
| + for (int i = 0; i < N; ++i) {
|
| + fData[i] = rand.nextSScalar1();
|
| + }
|
| +
|
| + fIsRendering = false;
|
| + }
|
| +
|
| +protected:
|
| + virtual void onDraw(SkCanvas*) {
|
| + for (int j = 0; j < NN; ++j) {
|
| + for (int i = 0; i < N - 4; ++i) {
|
| + fResult[i] = SkFloatToFixed(fData[i]);
|
| + }
|
| + }
|
| +
|
| + SkPaint paint;
|
| + if (paint.getAlpha() == 0) {
|
| + SkDebugf("%d\n", fResult[0]);
|
| + }
|
| + }
|
| +
|
| + virtual const char* onGetName() {
|
| + return "float_to_fixed";
|
| + }
|
| +
|
| +private:
|
| + typedef SkBenchmark INHERITED;
|
| +};
|
| +
|
| +///////////////////////////////////////////////////////////////////////////////
|
| +
|
| DEF_BENCH( return new NoOpMathBench(p); )
|
| DEF_BENCH( return new SlowISqrtMathBench(p); )
|
| DEF_BENCH( return new FastISqrtMathBench(p); )
|
| @@ -501,3 +543,5 @@ DEF_BENCH( return new CLZBench(p, false); )
|
| DEF_BENCH( return new CLZBench(p, true); )
|
|
|
| DEF_BENCH( return new NormalizeBench(p); )
|
| +
|
| +DEF_BENCH( return new FixedMathBench(p); )
|
|
|