You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.6 KiB
61 lines
1.6 KiB
/* |
|
* Copyright 2016 Google Inc. |
|
* |
|
* Use of this source code is governed by a BSD-style license that can be |
|
* found in the LICENSE file. |
|
*/ |
|
|
|
#include "Benchmark.h" |
|
#include "SkCanvas.h" |
|
#include "SkRandom.h" |
|
|
|
class QuickRejectBench : public Benchmark { |
|
enum { N = 1000000 }; |
|
float fFloats[N]; |
|
int fInts [N]; |
|
|
|
const char* onGetName() override { return "quick_reject"; } |
|
bool isSuitableFor(Backend backend) override { return backend != kNonRendering_Backend; } |
|
|
|
void onDelayedSetup() override { |
|
SkRandom rand; |
|
for (int i = 0; i < N; ++i) { |
|
fFloats[i] = 300.0f * (rand.nextSScalar1() + 0.5f); |
|
} |
|
} |
|
|
|
void onDraw(int loops, SkCanvas* canvas) override { |
|
while (loops --> 0) { |
|
for (int i = 0; i < N - 4; i++) { |
|
if (canvas->quickReject(*(SkRect*)(fFloats+i))) { |
|
fInts[i] = 11; |
|
} else { |
|
fInts[i] = 24; |
|
} |
|
} |
|
} |
|
} |
|
}; |
|
DEF_BENCH( return new QuickRejectBench; ) |
|
|
|
class ConcatBench : public Benchmark { |
|
SkMatrix fMatrix; |
|
|
|
const char* onGetName() override { return "concat"; } |
|
bool isSuitableFor(Backend backend) override { return backend != kNonRendering_Backend; } |
|
|
|
void onDelayedSetup() override { |
|
SkRandom r; |
|
fMatrix.setScale(5.0f, 5.0f); |
|
fMatrix.setTranslateX(10.0f); |
|
fMatrix.setTranslateY(10.0f); |
|
} |
|
|
|
void onDraw(int loops, SkCanvas* canvas) override { |
|
while (loops --> 0) { |
|
canvas->setMatrix(SkMatrix::MakeScale(3.0f)); |
|
canvas->concat(fMatrix); |
|
} |
|
} |
|
}; |
|
DEF_BENCH( return new ConcatBench; )
|
|
|