/
qscenewidget.h
60 lines (57 loc) · 1.37 KB
/
qscenewidget.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#ifndef QSCENEWIDGET_H
#define QSCENEWIDGET_H
#include <QtGui/QWidget>
#include <QtGui/QPaintEvent>
#include <QtGui/qvector3d.h>
#include <QtGui/qmatrix4x4.h>
#include <QtOpenGL>
#include <QtOpenGL/QGLWidget>
#include <QtOpenGL/qglshaderprogram.h>
#include "cvsu/cvsu_pixel_image.h"
class QSceneWidget : public QGLWidget
{
Q_OBJECT
public:
explicit QSceneWidget(pixel_image *left, pixel_image *right, QWidget *parent = 0);
virtual ~QSceneWidget();
virtual void paintEvent(QPaintEvent *);
void resizeEvent(QResizeEvent *event);
protected: // from QGLWidget
virtual void paintGL();
virtual void initializeGL();
virtual void resizeGL(int width, int height);
private:
void paintTriangle();
void paintTexturedQuad(GLuint texture);
QColor colorKey;
QImage leftImage;
QImage rightImage;
pixel_image *left;
pixel_image *right;
GLuint m_uiTexture;
GLuint m_leftTexture;
GLuint m_rightTexture;
qreal m_fAngle;
qreal m_fScale;
QMatrix4x4 perspectiveMatrix;
QMatrix4x4 cameraMatrix;
QGLShaderProgram program1;
QGLShaderProgram program2;
int vertexAttr1;
int colorAttr1;
int normalAttr1;
int texCoordAttr1;
int matrixUniform1;
int textureUniform1;
int vertexAttr2;
int colorAttr2;
int normalAttr2;
int texCoordAttr2;
int matrixUniform2;
int textureUniform2;
signals:
//
public slots:
void refresh();
};
#endif // QSCENEWIDGET_H