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 VisualDebugModule_DEFINED
9#define VisualDebugModule_DEFINED
10
11#include "VisualModule.h"
12
13#include "SkDebugCanvas.h"
14#include "VisualBench.h"
15#include "VisualBenchmarkStream.h"
16
17class VisualDebugModule : public VisualModule {
18public:
19    VisualDebugModule(VisualBench* owner);
20    void draw(SkCanvas* canvas) override;
21    bool onHandleChar(SkUnichar unichar) override;
22
23private:
24    enum State {
25        kInit_State,
26        kPlay_State,
27        kNext_State,
28    };
29
30    bool advanceIfNecessary(SkCanvas*);
31
32    State fState;
33    SkAutoTUnref<SkDebugCanvas> fDebugCanvas;
34    int fIndex;
35
36    // support framework
37    VisualBench* fOwner;
38    SkAutoTDelete<VisualBenchmarkStream> fBenchmarkStream;
39
40    typedef VisualModule INHERITED;
41};
42
43#endif
44