diff options
author | Mike Klein <mtklein@chromium.org> | 2017-05-09 16:03:07 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-05-09 22:00:39 +0000 |
commit | 62669ad29ca4e74ca130190be59bb8ac82d6fbda (patch) | |
tree | a7efdf237032e09f8924415a6e50bf9c05869da2 /tools | |
parent | 25294d76b1c5ca34ba6cc7033ee42af6484b046b (diff) |
ok, add timer via
Change-Id: I3d25a2aa9ae6dacb52779142cea062c7d9df40f5
Reviewed-on: https://skia-review.googlesource.com/16238
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/ok_vias.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tools/ok_vias.cpp b/tools/ok_vias.cpp index 254e6b1a4f..90306d016e 100644 --- a/tools/ok_vias.cpp +++ b/tools/ok_vias.cpp @@ -9,7 +9,9 @@ #include "SkOSFile.h" #include "SkPictureRecorder.h" #include "SkPngEncoder.h" +#include "Timer.h" #include "ok.h" +#include <chrono> #include <regex> static std::unique_ptr<Src> proxy(Src* original, std::function<Status(SkCanvas*)> fn) { @@ -129,3 +131,31 @@ struct Filter : Dst { struct Register filter{"filter", "run only srcs matching match=.* exactly and search=.* somewhere", Filter::Create}; + +struct Time : Dst { + std::unique_ptr<Dst> target; + + static std::unique_ptr<Dst> Create(Options options, std::unique_ptr<Dst> dst) { + Time via; + via.target = std::move(dst); + return move_unique(via); + } + + Status draw(Src* src) override { + auto start = std::chrono::steady_clock::now(); + Status status = target->draw(src); + std::chrono::duration<double, std::milli> elapsed = std::chrono::steady_clock::now() + - start; + + auto msg = HumanizeMs(elapsed.count()); + ok_log(msg.c_str()); + return status; + } + + sk_sp<SkImage> image() override { + return target->image(); + } +}; +struct Register _time{"time", + "print wall run time", + Time::Create}; |