]> git.cworth.org Git - vogl/blob - src/vogleditor/vogleditor_qprogramexplorer.h
UI: Improved support for shared contexts and viewing shared state objects
[vogl] / src / vogleditor / vogleditor_qprogramexplorer.h
1 #ifndef VOGLEDITOR_QPROGRAMEXPLORER_H
2 #define VOGLEDITOR_QPROGRAMEXPLORER_H
3
4 #include <QWidget>
5
6 #include "vogl_core.h"
7
8 class vogl_context_snapshot;
9 class vogl_gl_object_state;
10 class vogl_program_state;
11 typedef vogl::vector<vogl_gl_object_state *> vogl_gl_object_state_ptr_vec;
12
13 namespace Ui {
14 class vogleditor_QProgramExplorer;
15 }
16
17 class vogleditor_QProgramExplorer : public QWidget
18 {
19     Q_OBJECT
20
21 public:
22     explicit vogleditor_QProgramExplorer(QWidget *parent = 0);
23     ~vogleditor_QProgramExplorer();
24
25     void clear();
26
27     uint set_program_objects(vogl::vector<vogl_context_snapshot*> sharingContexts);
28
29     bool set_active_program(unsigned long long programHandle);
30
31 private slots:
32     void on_programListBox_currentIndexChanged(int index);
33
34     void on_shaderListBox_currentIndexChanged(int index);
35
36     void on_shaderTextEdit_textChanged();
37
38     void on_saveShaderButton_clicked();
39
40 private:
41     Ui::vogleditor_QProgramExplorer *ui;
42     vogl_gl_object_state_ptr_vec m_objects;
43
44     uint add_program_objects(vogl_gl_object_state_ptr_vec objects);
45
46 signals:
47     void program_edited(vogl_program_state* pNewProgramState);
48
49 };
50
51 #endif // VOGLEDITOR_QPROGRAMEXPLORER_H