diff options
author | liyuqian <liyuqian@google.com> | 2016-06-20 14:05:27 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-06-20 14:05:27 -0700 |
commit | a27f669f460e9186dbb3ebe3e9323acef95d41b8 (patch) | |
tree | 477f3024e4bb9b24a4dadb00ca3b61cd818dabc6 /bench/PathBench.cpp | |
parent | 70ba047eacd06047a7a7f8e6ea94bce34c3e3cea (diff) |
Benchmark rotated rect with AA/noAA
Using this benchmark, we verify that AA is about 4x slower than noAA in
path_fill_big_rotated_rect. This is what I aim to improve in the next
CL.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087453003
Review-Url: https://codereview.chromium.org/2087453003
Diffstat (limited to 'bench/PathBench.cpp')
-rw-r--r-- | bench/PathBench.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/bench/PathBench.cpp b/bench/PathBench.cpp index d0ede02ab7..67e002ba24 100644 --- a/bench/PathBench.cpp +++ b/bench/PathBench.cpp @@ -112,6 +112,37 @@ private: typedef PathBench INHERITED; }; +class RotatedRectBench : public PathBench { +public: + RotatedRectBench(Flags flags, bool aa, int degrees) : INHERITED(flags) { + fAA = aa; + fDegrees = degrees; + } + + void appendName(SkString* name) override { + SkString suffix; + suffix.printf("rotated_rect_%s_%d", fAA ? "aa" : "noaa", fDegrees); + name->append(suffix); + } + + void makePath(SkPath* path) override { + SkRect r = { 10, 10, 20, 20 }; + path->addRect(r); + SkMatrix rotateMatrix; + rotateMatrix.setRotate((SkScalar)fDegrees); + path->transform(rotateMatrix); + } + + virtual void setupPaint(SkPaint* paint) override { + PathBench::setupPaint(paint); + paint->setAntiAlias(fAA); + } +private: + typedef PathBench INHERITED; + int fDegrees; + bool fAA; +}; + class OvalPathBench : public PathBench { public: OvalPathBench(Flags flags) : INHERITED(flags) {} @@ -1003,6 +1034,11 @@ DEF_BENCH( return new RectPathBench(FLAGS01); ) DEF_BENCH( return new RectPathBench(FLAGS10); ) DEF_BENCH( return new RectPathBench(FLAGS11); ) +DEF_BENCH( return new RotatedRectBench(FLAGS00, false, 45)); +DEF_BENCH( return new RotatedRectBench(FLAGS10, false, 45)); +DEF_BENCH( return new RotatedRectBench(FLAGS00, true, 45)); +DEF_BENCH( return new RotatedRectBench(FLAGS10, true, 45)); + DEF_BENCH( return new OvalPathBench(FLAGS00); ) DEF_BENCH( return new OvalPathBench(FLAGS01); ) DEF_BENCH( return new OvalPathBench(FLAGS10); ) |