]> git.cworth.org Git - vogl/blob - src/vogleditor/vogleditor_tracereplayer.h
UI: vogleditor_tracereplayer now outputs messages regarding success of replaying...
[vogl] / src / vogleditor / vogleditor_tracereplayer.h
1 #ifndef VOGLEDITOR_TRACEREPLAYER_H
2 #define VOGLEDITOR_TRACEREPLAYER_H
3
4 #include "vogl_common.h"
5 #include "vogl_replay_window.h"
6
7 class vogl_gl_replayer;
8 class vogleditor_gl_state_snapshot;
9 class vogl_gl_state_snapshot;
10 class vogleditor_apiCallTreeItem;
11 class vogl_trace_file_reader;
12
13 enum vogleditor_tracereplayer_result
14 {
15     VOGLEDITOR_TRR_SUCCESS = 0,
16     VOGLEDITOR_TRR_SNAPSHOT_SUCCESS,
17     VOGLEDITOR_TRR_USER_EXIT,
18     VOGLEDITOR_TRR_ERROR
19 };
20
21 class vogleditor_traceReplayer
22 {
23 public:
24     vogleditor_traceReplayer();
25     virtual ~vogleditor_traceReplayer();
26
27     vogleditor_tracereplayer_result replay(vogl_trace_file_reader* m_pTraceReader, vogleditor_apiCallTreeItem* pRootItem, vogleditor_gl_state_snapshot** ppNewSnapshot, uint64_t apiCallNumber, bool endlessMode);
28     bool pause();
29     bool restart();
30     bool trim();
31     bool stop();
32
33 private:
34
35     bool applying_snapshot_and_process_resize(const vogl_gl_state_snapshot* pSnapshot);
36
37     vogleditor_tracereplayer_result recursive_replay_apicallTreeItem(vogleditor_apiCallTreeItem* pItem, vogleditor_gl_state_snapshot** ppNewSnapshot, uint64_t apiCallNumber);
38     bool process_x_events();
39     vogl_gl_replayer* m_pTraceReplayer;
40     vogl_replay_window m_window;
41     Atom m_wmDeleteMessage;
42 };
43
44 #endif // VOGLEDITOR_TRACEREPLAYER_H