]> git.cworth.org Git - vogl/blob - src/vogleditor/vogleditor_qshaderexplorer.h
UI: Improved support for shared contexts and viewing shared state objects
[vogl] / src / vogleditor / vogleditor_qshaderexplorer.h
1 #ifndef VOGLEDITOR_QSHADEREXPLORER_H
2 #define VOGLEDITOR_QSHADEREXPLORER_H
3
4 #include <QWidget>
5
6 #include "vogl_core.h"
7
8 class vogl_context_snapshot;
9 class vogl_gl_object_state;
10 typedef vogl::vector<vogl_gl_object_state *> vogl_gl_object_state_ptr_vec;
11
12 namespace Ui {
13 class vogleditor_QShaderExplorer;
14 }
15
16 class vogleditor_QShaderExplorer : public QWidget
17 {
18     Q_OBJECT
19
20 public:
21     explicit vogleditor_QShaderExplorer(QWidget *parent = 0);
22     ~vogleditor_QShaderExplorer();
23
24     void clear();
25
26     uint set_shader_objects(vogl::vector<vogl_context_snapshot*> sharingContexts);
27
28     bool set_active_shader(unsigned long long shaderHandle);
29
30 private slots:
31     void on_shaderListbox_currentIndexChanged(int index);
32
33 private:
34     Ui::vogleditor_QShaderExplorer *ui;
35     vogl_gl_object_state_ptr_vec m_objects;
36
37     uint add_shader_objects(vogl_gl_object_state_ptr_vec objects);
38 };
39
40 #endif // VOGLEDITOR_QSHADEREXPLORER_H