]> Shamusworld >> Repos - virtualjaguar/blob - src/gui/glwidget.h
7557ea68629830abff7353f100634fafd81c3742
[virtualjaguar] / src / gui / glwidget.h
1 // Implementation of OpenGL widget using Qt
2 //
3 // by James Hammons
4 // (C) 2010 Underground Software
5
6 #ifndef __GLWIDGET_H__
7 #define __GLWIDGET_H__
8
9 #include <QtGui>
10 #include <QGLWidget>
11 #include <stdint.h>
12
13 class GLWidget: public QGLWidget
14 {
15         Q_OBJECT
16
17         public:
18                 GLWidget(QWidget * parent = 0);
19                 ~GLWidget();
20
21                 void HandleMouseHiding(void);
22                 void CheckAndRestoreMouseCursor(void);
23 //              QSize minimumSizeHint() const;
24 //              QSize sizeHint() const;
25
26 //      signals:
27 //              void clicked();
28
29         protected:
30                 void initializeGL(void);
31                 void paintGL(void);
32                 void resizeGL(int width, int height);
33                 void mouseMoveEvent(QMouseEvent *);
34 //              void mousePressEvent(QMouseEvent * event);
35 //              void mouseReleaseEvent(QMouseEvent * event);
36
37         private:
38                 void CreateTextures(void);
39
40         public:
41                 GLuint texture;
42                 int textureWidth, textureHeight;
43
44                 uint32_t * buffer;
45                 unsigned rasterWidth, rasterHeight;
46
47                 bool synchronize;
48                 unsigned filter;
49                 int offset;
50                 bool fullscreen;
51                 int outputWidth;
52                 int32_t hideMouseTimeout;
53 };
54
55 #endif  // __GLWIDGET_H__