]> git.cworth.org Git - vogl/blob - src/vogleditor/vogleditor_qtextureexplorer.h
UI: Improved support for shared contexts and viewing shared state objects
[vogl] / src / vogleditor / vogleditor_qtextureexplorer.h
1 #ifndef VOGLEDITOR_QTEXTUREEXPLORER_H
2 #define VOGLEDITOR_QTEXTUREEXPLORER_H
3
4 #include <QWidget>
5
6 #include "vogl_core.h"
7 #include "vogleditor_qtextureviewer.h"
8
9 class vogl_gl_object_state;
10 class vogl_context_snapshot;
11 typedef vogl::vector<vogl_gl_object_state *> vogl_gl_object_state_ptr_vec;
12
13 class vogl_texture_state;
14
15 namespace Ui {
16 class vogleditor_QTextureExplorer;
17 }
18
19 class vogleditor_QTextureExplorer : public QWidget
20 {
21     Q_OBJECT
22
23 public:
24     explicit vogleditor_QTextureExplorer(QWidget *parent = 0);
25     ~vogleditor_QTextureExplorer();
26
27     uint set_texture_objects(vogl::vector<vogl_context_snapshot*> sharingContexts);
28     uint set_renderbuffer_objects(vogl::vector<vogl_context_snapshot*> sharingContexts);
29     uint set_texture_objects(vogl_gl_object_state_ptr_vec objects);
30     uint add_texture_object(vogl_texture_state& textureState, vogl::dynamic_string bufferType);
31
32     bool set_active_texture(unsigned long long textureHandle);
33
34     void clear();
35
36     unsigned int get_preferred_height() const;
37
38     void set_zoom_factor(double zoomFactor);
39
40 private:
41     Ui::vogleditor_QTextureExplorer *ui;
42     vogl_gl_object_state_ptr_vec m_objects;
43     QTextureViewer m_textureViewer;
44
45     uint add_texture_objects(vogl_gl_object_state_ptr_vec objects);
46
47 private slots:
48     void selectedTextureIndexChanged(int index);
49     void channelSelectionChanged(int index);
50     void alphaBlendButtonClicked();
51     void on_zoomSpinBox_valueChanged(double zoomFactor);
52     void on_pushButton_toggled(bool checked);
53
54     void on_sampleSpinBox_valueChanged(int sample);
55
56 signals:
57     void zoomFactorChanged(double zoomFactor);
58 };
59
60 #endif // VOGLEDITOR_QTEXTUREEXPLORER_H