]> git.cworth.org Git - vogl/blobdiff - src/vogleditor/vogleditor.h
UI: Add ability to trim files directly from vogleditor
[vogl] / src / vogleditor / vogleditor.h
index 53247d6db948f5c81ed73aa44f383a1aec2885e8..ced6b2d0b6de838e144fbb99f2e12539c5b3ca25 100644 (file)
@@ -51,6 +51,7 @@ class vogleditor_QTextureExplorer;
 
 class QItemSelection;
 class QModelIndex;
+class QProcess;
 class QSortFilterProxyModel;
 class QToolButton;
 class vogl_context_snapshot;
@@ -60,12 +61,14 @@ class vogl_replay_window;
 class vogl_shader_state;
 class vogl_texture_state;
 class vogl_trace_file_reader;
+class vogl_trace_file_writer;
 class vogl_trace_packet;
 class vogl_gl_state_snapshot;
 class vogleditor_apiCallTimelineModel;
 class vogleditor_apiCallTreeItem;
 class vogleditor_gl_state_snapshot;
 class vogleditor_QApiCallTreeModel;
+class vogleditor_QStateTreeModel;
 
 class VoglEditor : public QMainWindow
 {
@@ -89,9 +92,9 @@ private slots:
    void on_treeView_clicked(const QModelIndex& index);
 
    void playCurrentTraceFile();
-   void pauseCurrentTraceFile();
    void trimCurrentTraceFile();
-   void stopCurrentTraceFile();
+
+   bool trim_trace_file(QString filename, uint maxFrameIndex, uint maxAllowedTrimLen);
 
    void on_stateTreeView_clicked(const QModelIndex &index);
 
@@ -105,6 +108,12 @@ private slots:
 
    void on_program_edited(vogl_program_state* pNewProgramState);   
 
+   void on_actionSave_Session_triggered();
+
+   void on_actionOpen_Session_triggered();
+
+   void on_searchTextBox_returnPressed();
+
 private:
    Ui::VoglEditor* ui;
 
@@ -132,22 +141,31 @@ private:
 
    void write_child_api_calls(vogleditor_apiCallTreeItem* pItem, FILE* pFile);
 
+   bool load_session_from_disk(QString sessionFile);
+   bool save_session_to_disk(QString sessionFile);
+   bool save_snapshot_to_disk(vogl_gl_state_snapshot* pSnapshot, dynamic_string filename, vogl_blob_manager *pBlob_manager);
+
    QString m_openFilename;
-   QLabel* m_statusLabel;
-   vogleditor_QFramebufferExplorer* m_framebufferExplorer;
-   vogleditor_QTextureExplorer* m_textureExplorer;
-   vogleditor_QTextureExplorer* m_renderbufferExplorer;
-   vogleditor_QProgramExplorer* m_programExplorer;
-   vogleditor_QShaderExplorer* m_shaderExplorer;
+   QLabel* m_pStatusLabel;
+   vogleditor_QFramebufferExplorer* m_pFramebufferExplorer;
+   vogleditor_QTextureExplorer* m_pTextureExplorer;
+   vogleditor_QTextureExplorer* m_pRenderbufferExplorer;
+   vogleditor_QProgramExplorer* m_pProgramExplorer;
+   vogleditor_QShaderExplorer* m_pShaderExplorer;
    vogleditor_QTimelineView* m_timeline;
 
+   QGridLayout* m_pFramebufferTab_layout;
+   QGridLayout* m_pTextureTab_layout;
+   QGridLayout* m_pRenderbufferTab_layout;
+   QGridLayout* m_pProgramTab_layout;
+   QGridLayout* m_pShaderTab_layout;
+
    vogleditor_gl_state_snapshot* m_currentSnapshot;
    vogleditor_apiCallTreeItem* m_pCurrentCallTreeItem;
 
+   QProcess* m_pVoglReplayProcess;
    QToolButton* m_pPlayButton;
-   QToolButton* m_pPauseButton;
    QToolButton* m_pTrimButton;
-   QToolButton* m_pStopButton;
 
    vogleditor_traceReplayer m_traceReplayer;
    vogl_trace_file_reader* m_pTraceReader;
@@ -155,10 +173,10 @@ private:
    vogl::hash_map<vogl::uint32, vogl::json_node*> m_backtraceToJsonMap;
 
    vogleditor_apiCallTimelineModel* m_pTimelineModel;
+   vogleditor_QApiCallTreeModel* m_pApiCallTreeModel;
+   vogleditor_QStateTreeModel* m_pStateTreeModel;
 
-   vogleditor_QApiCallTreeModel* m_pApicallTreeModel;
-
-   QModelIndexList m_searchApicallResults;
+   QColor m_searchTextboxBackgroundColor;
 };
 
 #endif // VOGLEDITOR_H