Cleanup timing state machine
BUG=skia:
Review URL: https://codereview.chromium.org/1386933002
diff --git a/tools/VisualBench/VisualInteractiveModule.cpp b/tools/VisualBench/VisualInteractiveModule.cpp
index f41bcae..d2e5b20 100755
--- a/tools/VisualBench/VisualInteractiveModule.cpp
+++ b/tools/VisualBench/VisualInteractiveModule.cpp
@@ -27,6 +27,7 @@
: fCurrentMeasurement(0)
, fBenchmark(nullptr)
, fAdvance(false)
+ , fHasBeenReset(false)
, fOwner(SkRef(owner)) {
fBenchmarkStream.reset(new VisualBenchmarkStream);
@@ -93,7 +94,7 @@
fOwner->clear(canvas, SK_ColorWHITE, 2);
fBenchmark->delayedSetup();
-
+ fBenchmark->preTimingHooks(canvas);
return true;
}
#include "GrGpu.h"
@@ -104,10 +105,18 @@
fOwner->closeWindow();
return;
}
+
+ if (fHasBeenReset) {
+ fHasBeenReset = false;
+ fBenchmark->preTimingHooks(canvas);
+ }
+
this->renderFrame(canvas);
- TimingStateMachine::ParentEvents event = fTSM.nextFrame(canvas, fBenchmark);
+ TimingStateMachine::ParentEvents event = fTSM.nextFrame(false);
switch (event) {
case TimingStateMachine::kReset_ParentEvents:
+ fBenchmark->postTimingHooks(canvas);
+ fHasBeenReset = true;
fOwner->reset();
break;
case TimingStateMachine::kTiming_ParentEvents:
@@ -121,10 +130,10 @@
if (fAdvance) {
fAdvance = false;
fTSM.nextBenchmark(canvas, fBenchmark);
+ fBenchmark->postTimingHooks(canvas);
fBenchmark.reset(nullptr);
fOwner->reset();
- } else {
- fTSM.nextSample();
+ fHasBeenReset = true;
}
break;
}