Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(73)

Side by Side Diff: tools/VisualBench/TimingStateMachine.h

Issue 2018603003: Remove VisualBench and its Android implementation. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « platform_tools/android/gyp/skia_android.gypi ('k') | tools/VisualBench/TimingStateMachine.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*
2 * Copyright 2015 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8 #ifndef TimingStateMachine_DEFINED
9 #define TimingStateMachine_DEFINED
10
11 #include "Benchmark.h"
12 #include "SkTArray.h"
13 #include "Timer.h"
14
15 class SkCanvas;
16
17 /*
18 * Manages a timer via a state machine. Can be used by modules to time benchmar ks
19 *
20 * Clients call nextFrame, and must handle any requests from the timing state ma chine, specifically
21 * to reset. When kTimingFinished_ParentEvents is returned, then lastMeasuremen t() will return the
22 * timing and loops() will return the number of loops used to time.
23 *
24 * A client may continue timing the same benchmark indefinitely. To advance to the next
25 * benchmark, the client should call nextBenchmark.
26 */
27 class TimingStateMachine {
28 public:
29 TimingStateMachine();
30
31 enum ParentEvents {
32 kReset_ParentEvents,
33 kTiming_ParentEvents,
34 kTimingFinished_ParentEvents,// This implies parent can read lastMeasure ment() and must
35 // reset
36 };
37
38 ParentEvents nextFrame(bool preWarmBetweenSamples);
39
40 /*
41 * The caller should call this when they are ready to move to the next bench mark.
42 */
43 void nextBenchmark();
44
45 /*
46 * When TimingStateMachine returns kTimingFinished_ParentEvents, then the ow ner can call
47 * lastMeasurement() to get the time
48 */
49 double lastMeasurement() const { return fLastMeasurement; }
50
51 int loops() const { return fLoops; }
52
53 private:
54 enum State {
55 kPreWarm_State,
56 kTiming_State,
57 };
58 enum InnerState {
59 kTuning_InnerState,
60 kTiming_InnerState,
61 };
62
63 int fCurrentFrame;
64 int fLoops;
65 double fLastMeasurement;
66 double fStartTime;
67 State fState;
68 InnerState fInnerState;
69 };
70
71 #endif
OLDNEW
« no previous file with comments | « platform_tools/android/gyp/skia_android.gypi ('k') | tools/VisualBench/TimingStateMachine.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698