forked from lzricardo/tetris-3d
-
Notifications
You must be signed in to change notification settings - Fork 0
/
glwidget.h
62 lines (51 loc) · 1.33 KB
/
glwidget.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
61
62
/*
* UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA - UEFS
* Engenharia da Computação
* TEC431 - Computação Gráfica
*
* Trabalho Final - 2019.2E
*
* Alunos:
* Matheus Oliveira Borges <[email protected]>
* Luiz Ricardo Inês de Souza <[email protected]>
*
*/
#ifndef GLWIDGET_H
#define GLWIDGET_H
#include <QGLWidget>
#include <QTime>
#include <QHash>
#include "board.h"
class QTimer;
class GLWidget : public QGLWidget {
Q_OBJECT
public:
GLWidget();
~GLWidget();
protected:
void initializeGL();
void resizeGL(int boardWidth, int boardHeight);
void paintGL();
void keyPressEvent(QKeyEvent *event);
private:
GLuint _textureBorder;
GLuint *_texturesBox; // Uma para cada um dos tipos de peça
void setupTextures();
GLuint loadTexture(QString image);
void setupLighting();
GLfloat cubeSize;
GLuint cubeListIndex;
GLfloat stepRotate, stepTranslate;
GLfloat angleX, angleY, posX, posY, posZ;
void drawCube();
void paintBoardBorder();
void paintBoardContent();
void gameOver();
QTimer *timer; // Timer para a taxa de atualização da tela (framerate)
QTimer *gameCicleTimer; // Timer para a taxa de execução do jogo (ciclo de jogo)
GLint cicleTime;
Board board;
public Q_SLOTS:
virtual void updateGameCicle();
};
#endif // GLWIDGET_H