Bonjour,
J'ai quelques soucis avec OpenGL. Mon programme tournait sans problème avant. Seulement je voudrais faire un jeu et mon code était alors plus que limitait pour évoluer. J'ai donc fais quelques grands remaniements et plus rien ne fonctionne comme je voudrais...

Au départ, donc, j'affichais au total 3 textures, le fond, un châssis de tank et son canon (qui se déplaçaient également très bien). Après modification de mon code, j'obtiens de drôle de résultats. Je suis sûr (avec un log) que mon code est bien appeler pour dessiner, mais seul le fond se dessine (et rien dans cette partie n'a changé). J'ai donc enlevé le dessin du fond et je me retrouve avec une fenêtre noire (la couleur de vidage, jusque là encore pourquoi pas).

Maintenant, je cherche (en bidouillant le code) ce qui est défectueux... et je trouve que (en utilisant glColor) ce n'est pas les coordonnées le problème car j'arrive à dessiner un rectangle blanc sans les données de texture. Maintenant si je mets glEnable(GL_TEXTURE_2D), le rectangle blanc devient vert pâle, et si j'applique la texture... Rien n'est affiché! Je n'ai pas oublié glDisable avec le même paramètre mais c'est plutôt étrange et même si je ne suis pas sûr que le problème soit vraiment dans la partie graphique et OpenGL (bien que très probable), je voudrais savoir si quelqu'un a une idée de ce qui m'arrive...

Pour résumé:
-le problème ne vient pas d'une autre partie du code utilisant OpenGL car il n'y en a pas.

-le code peut se résumer par:

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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
//displayFunc()
 
glMatrixMode(GL_PROJECTION);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
//gestionnaire_objet::getInstance()->dessiner();
/*mon gestionnaire d'objet qui appelle les objets à dessiner, ils sont bien appelés (et c'est le seul objet appelé, je le sais avec le log)*/
 
//cet appel se résume donc à :
 
glLoadIdentity();
 
glEnable(GL_TEXTURE_2D);
 
glColor3f(1.0,1.0,1.0);
 
img_chassis.Bind(); /*la partie chargement d'image semble fonctionnelle car elle ne pose aucun problème avec le décor, et en changeant l'image chargée par celle du tank, il n'y a encore aucun problème*/
 
glBegin(GL_QUADS); 
/*aucune coordonnée de texture n'est utilisée mais rien n'est dessiné quand même*/
glVertex2f(-0.1, -0.1);
glVertex2f(0.1, -0.1);
glVertex2f(0.1, 0.1);
glVertex2f(-0.1, 0.1);
glEnd();
 
glDisable(GL_TEXTURE_2D);
 
//fin de l'action de mon gestionnaire d'objet
 
 
glFlush();
glutSwapBuffers();
Merci d'avance si quelqu'un peut m'aider!