]> git.cworth.org Git - apitrace/blob - gui/retracer.h
Merge branch 'master' into d3dretrace
[apitrace] / gui / retracer.h
1 #ifndef RETRACER_H
2 #define RETRACER_H
3
4 #include "trace_api.hpp"
5 #include "apitracecall.h"
6
7 #include <QThread>
8 #include <QProcess>
9
10 class ApiTraceState;
11
12 class Retracer : public QThread
13 {
14     Q_OBJECT
15 public:
16     Retracer(QObject *parent=0);
17
18     QString fileName() const;
19     void setFileName(const QString &name);
20
21     void setAPI(trace::API api);
22
23     bool isBenchmarking() const;
24     void setBenchmarking(bool bench);
25
26     bool isDoubleBuffered() const;
27     void setDoubleBuffered(bool db);
28
29     void setCaptureAtCallNumber(qlonglong num);
30     qlonglong captureAtCallNumber() const;
31
32     bool captureState() const;
33     void setCaptureState(bool enable);
34
35     bool captureThumbnails() const;
36     void setCaptureThumbnails(bool enable);
37
38 signals:
39     void finished(const QString &output);
40     void foundState(ApiTraceState *state);
41     void foundThumbnails(const QList<QImage> &thumbnails);
42     void error(const QString &msg);
43     void retraceErrors(const QList<ApiTraceError> &errors);
44
45 protected:
46     virtual void run();
47
48 private:
49     QString m_fileName;
50     trace::API m_api;
51     bool m_benchmarking;
52     bool m_doubleBuffered;
53     bool m_captureState;
54     bool m_captureThumbnails;
55     qlonglong m_captureCall;
56
57     QProcessEnvironment m_processEnvironment;
58 };
59
60 #endif