Qt et OpenGL : dessiner un ensemble de pixels
Bonjour, je débute avec OpenGL (et Qt), j'essaie de dessiner un rectangle pixel par pixel (le but final n'est pas de dessiner un rectangle, sinon oui il y a plus simple).
Premièrement, je calcul la taille vertical et horizontal d'un pixel dans le constructeur de ce que je veux dessiner :
Code:
1 2 3 4 5
| DessinOpenGL::DessinOpenGL() : QGLWidget()
{
m_hPixel = 1.0 / geometry().height(),
m_lPixel = 1.0 / geometry().width();
} |
Et je redéfinie paintGL comme ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| void DessinOpenGL::paintGL()
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POINTS);
for (int j = 0; j < 800 ; j++) // censé dessiner un rectangle rouge de 800 * 600
{
for(int i = 0; i < 600; i++)
{
glColor3ub(255,0,0);
glVertex2d(i * m_lPixel, j * m_hPixel);
}
}
glEnd();
glFlush();
} |
J'ai un main tout simple qui définie un objet dessinOpenGL, lui donne des dimension et l'affiche dans une fenêtre de 800*600.
Code:
1 2 3 4 5 6 7 8 9 10 11
| int main(int argc, char **argv)
{
QApplication app(argc, argv);
DessinOpenGL dessin;
dessin.resize(800, 600);
dessin.show();
return app.exec();
} |
Ça à l'air de marcher avec des petites valeurs (carré de 100*100 par exemple), mais passé certaines valeurs, le dessin ne change pas. Je devrais avoir un rectangle rouge de 800*600 (donc qui prendrait toute la fenêtre), mais je n'obtient qu'un petit rectangle dans ma fenêtre.
Si vous pouvez m'éclairer ce serait super, merci. :)