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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.