diff options
author | Brian Osman <brianosman@google.com> | 2017-12-19 11:15:16 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-12-20 16:59:04 +0000 |
commit | 56a24813a4f905aa26cb90c7f835549677ac6975 (patch) | |
tree | 77648218a50f8c02cfc0ecceea9299de36a4aa3b /tools/viewer/StatsLayer.h | |
parent | 16a127fa6000e2715e2d2ad4d0c9110c7fbd4cac (diff) |
Move stats code to new layer (with configurable list of timers)
Bug: skia:
Change-Id: I3ca5c8c7047309983018339ec7b71b9aea5ee786
Reviewed-on: https://skia-review.googlesource.com/86921
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Diffstat (limited to 'tools/viewer/StatsLayer.h')
-rw-r--r-- | tools/viewer/StatsLayer.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tools/viewer/StatsLayer.h b/tools/viewer/StatsLayer.h new file mode 100644 index 0000000000..a99bd43a99 --- /dev/null +++ b/tools/viewer/StatsLayer.h @@ -0,0 +1,43 @@ +/* +* Copyright 2017 Google Inc. +* +* Use of this source code is governed by a BSD-style license that can be +* found in the LICENSE file. +*/ + +#ifndef StatsLayer_DEFINED +#define StatsLayer_DEFINED + +#include "SkColor.h" +#include "SkString.h" +#include "sk_app/Window.h" + +class StatsLayer : public sk_app::Window::Layer { +public: + StatsLayer(); + void resetMeasurements(); + + typedef int Timer; + + Timer addTimer(const char* label, SkColor color, SkColor labelColor = 0); + void beginTiming(Timer); + void endTiming(Timer); + double getLastTime(Timer); + + void onPaint(SkCanvas* canvas) override; + +private: + static const int kMeasurementCount = 1 << 6; // should be power of 2 for fast mod + struct TimerData { + double fTimes[kMeasurementCount]; + SkString fLabel; + SkColor fColor; + SkColor fLabelColor; + }; + SkTArray<TimerData> fTimers; + int fCurrentMeasurement; + double fCumulativeMeasurementTime; + int fCumulativeMeasurementCount; +}; + +#endif |