]> git.cworth.org Git - apitrace/blobdiff - gui/apitrace.h
d3dretrace: Force DWM traces to run on a window.
[apitrace] / gui / apitrace.h
index d0a6be4356dc6aee5674a5973ffb85f8d7d2d278..04e295cd7e39470476990d834b5085be7bf77997 100644 (file)
@@ -3,6 +3,8 @@
 
 #include "apitracecall.h"
 
+#include "trace_api.hpp"
+
 #include <QObject>
 #include <QSet>
 
@@ -14,12 +16,6 @@ class ApiTrace : public QObject
 {
     Q_OBJECT
 public:
-    enum FrameMarker {
-        FrameMarker_SwapBuffers,
-        FrameMarker_Flush,
-        FrameMarker_Finish,
-        FrameMarker_Clear
-    };
     enum SearchResult {
         SearchResult_NotFound,
         SearchResult_Found,
@@ -51,8 +47,6 @@ public:
         Qt::CaseSensitivity cs;
     };
 
-    static bool isCallAFrameMarker(const ApiTraceCall *call,
-                                   FrameMarker marker);
 public:
     ApiTrace();
     ~ApiTrace();
@@ -61,13 +55,11 @@ public:
 
     QString fileName() const;
 
-    FrameMarker frameMarker() const;
-
     ApiTraceState defaultState() const;
 
     ApiTraceCall *callWithIndex(int idx) const;
 
-    QList<ApiTraceFrame*> frames() const;
+    const QList<ApiTraceFrame*> & frames() const;
     ApiTraceFrame *frameAt(int idx) const;
     int numFrames() const;
     int numCallsInFrame(int idx) const;
@@ -83,6 +75,8 @@ public:
 
     bool hasErrors() const;
 
+    trace::API api() const;
+
 public slots:
     void setFileName(const QString &name);
     void save();
@@ -100,6 +94,7 @@ public slots:
     void findCallIndex(int index);
     void setCallError(const ApiTraceError &error);
 
+    void bindThumbnailsToFrames(const QList<QImage> &thumbnails);
 
 signals:
     void loadTrace(const QString &name);
@@ -109,7 +104,7 @@ signals:
     void finishedLoadingTrace();
     void invalidated();
     void framesInvalidated();
-    void changed(ApiTraceCall *call);
+    void changed(ApiTraceEvent *event);
     void startedSaving();
     void saved();
     void findResult(const ApiTrace::SearchRequest &request,
@@ -133,6 +128,7 @@ signals:
 private slots:
     void addFrames(const QList<ApiTraceFrame*> &frames);
     void slotSaved();
+    void guessedApi(int api);
     void finishedParsing();
     void loaderFrameLoaded(ApiTraceFrame *frame,
                            const QVector<ApiTraceCall*> &calls,
@@ -143,13 +139,13 @@ private slots:
 
 private:
     int callInFrame(int callIdx) const;
+    bool isFrameLoading(ApiTraceFrame *frame) const;
 private:
     QString m_fileName;
     QString m_tempFileName;
 
     QList<ApiTraceFrame*> m_frames;
-
-    FrameMarker m_frameMarker;
+    trace::API m_api;
 
     TraceLoader *m_loader;
     QThread     *m_loaderThread;
@@ -161,6 +157,7 @@ private:
 
     QSet<ApiTraceCall*> m_errors;
     QList< QPair<ApiTraceFrame*, ApiTraceError> > m_queuedErrors;
+    QSet<ApiTraceFrame*> m_loadingFrames;
 };
 
 #endif