Hello,
Je n'arrive plus a affiché dans ma fenetre.

Il y a une fonction init SDL et une init OPENGL
puis j'affiche l'habituel cube.

mais la rien ne se passe et ca m'enerve car je ne trouve pas pourquoi.

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
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
 
/////////////////////////////////////////////////////
///                  Main
/////////////////////////////////////////////////////
///     - Fichier principale du projet
/////////////////////////////////////////////////////
///     - boucle principale du projet
/////////////////////////////////////////////////////
 
/////////////////////////////////////////////////////
///                  include
/////////////////////////////////////////////////////
#include "Main.h"
 
/////////////////////////////////////////////////////
///                  declaration
/////////////////////////////////////////////////////
// affichage
void affichage () ;
void reajusterTailleEcran (int largeur , int hauteur) ;
void initOpenGL (int largeur, int hauteur) ;
void initSDL(const char* titre, int largeur, int hauteur, int profondeur, bool plein_ecran);
 
/////////////////////////////////////////////////////
///                  variables globales
/////////////////////////////////////////////////////
// Surface de l'ecran
SDL_Surface* fenetre;
 
/////////////////////////////////////////////////////
///                  Fonction principale
/////////////////////////////////////////////////////
 
int main(int argc, char* argv[])
{
	// Toujours initialiser SDL avant OpenGL
	initSDL("essai 0.1", 640, 480, 16, false);
	initOpenGL(640,480);
    // Reajuste la taille de la fenetre
	reajusterTailleEcran (LARGEUR,HAUTEUR);
 
	// Boucle d'evenement
	bool quit = false;
	while(!quit)
	{
		SDL_Event event;
		if(SDL_PollEvent(&event))
		{
			switch(event.type)
			{
				// quitte l'application
                case SDL_QUIT:
                    quit = true;
                    break;
 
                // Ajuste le rapport entre les objets OpenGL et la taille de la fenetre
                case SDL_VIDEORESIZE:
                    reajusterTailleEcran (event.resize.w,event.resize.h);
			}
		}
 
		// affichage
		affichage();
	}
 
	return 0;
}
 
void affichage ()
{
    /// debut d'un cycle
    // preparation de l'affichage
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
    // place la couleur a blanc
    glColor3f ( 1.0f , 1.0f , 1.0f ) ;
    // debut du dessin
    glEnable(GL_TEXTURE_2D) ;
 
 
 
 
    glBegin ( GL_QUADS ) ;
	glColor3d(1.,0.,0.);
	glVertex3i(1,1,1);
	glVertex3i(1,-1,1);
	glVertex3i(-1,-1,1);
	glVertex3i(-1,1,1);
 
	glColor3d(0.,1.,0.);
	glVertex3i(1,1,-1);
	glVertex3i(1,-1,-1);
	glVertex3i(-1,-1,-1);
	glVertex3i(-1,1,-1);
 
	glColor3d(0.,0.,1.);
	glVertex3i(1,1,1);
	glVertex3i(1,-1,1);
	glVertex3i(1,-1,-1);
	glVertex3i(1,1,-1);
 
	glColor3d(0.,1.,1.);
	glVertex3i(-1,1,1);
	glVertex3i(-1,-1,1);
	glVertex3i(-1,-1,-1);
	glVertex3i(-1,1,-1);
 
	glColor3d(1.,1.,0.);
	glVertex3i(-1,1,-1);
	glVertex3i(-1,1,1);
	glVertex3i(1,1,1);
	glVertex3i(1,1,-1);
 
	glColor3d(1.,0.,1.);
	glVertex3i(-1,-1,-1);
	glVertex3i(-1,-1,1);
	glVertex3i(1,-1,1);
	glVertex3i(1,-1,-1);
    glEnd();
 
    /// fin d'un cycle
    // fin du dessin
    //glDisable(GL_TEXTURE_2D);
    // swap
	SDL_GL_SwapBuffers();
}
 
void reajusterTailleEcran (int largeur, int hauteur)
{
	// indique la taille de la fenetre de dessin (coord depart <-> coord arrive)
	glViewport(0,0,largeur,hauteur);
	// passe en matrix de PROJECTION
	glMatrixMode(GL_PROJECTION);
	// vide la matrice modifiable et prepare a la projection
	glLoadIdentity();
	// specifie l'angle de champs de vision
	gluPerspective(45.0, (float) largeur/hauteur, 1.0, 10.0);
    // passe en matrix de MODELISATION - VISUALISATION
	glMatrixMode(GL_MODELVIEW);
	// vide la matrice modifiable et prepare a la modelisation - visualisation
	glLoadIdentity();
}
 
void initOpenGL(int largeur, int hauteur)
{
    // vide le tampon chromatique (arriere plan <- noir)
	glClearColor(0.0,0.0,0.0,0.0);
	// vide le tampon chromatique
	glClearDepth(1.0);
    // on active le blending
    glEnable(GL_BLEND) ;
    //glBlendFunc(GL_SRC_ALPHA,GL_ONE) ;
    glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
	// active la projection
	glMatrixMode(GL_PROJECTION ) ;
    glLoadIdentity() ;
	gluOrtho2D ( 0.0 , (GLdouble)largeur , 0.0 , (GLdouble)hauteur ) ;
     //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);   // Définit la magnification
     //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);   // Définit la minification
	glMatrixMode(GL_MODELVIEW);
}
 
void initSDL (const char* titre, int largeur, int hauteur, int profondeur, bool plein_ecran)
{
    int flags = 0 ;
    //flags = flags | SDL_GL_DOUBLEBUFFER | SDL_RESIZABLE | SDL_SWSURFACE ;
    flags = flags | SDL_OPENGL | SDL_RESIZABLE | SDL_SWSURFACE ;
	// initialise la partie video de SDL
	SDL_Init(SDL_INIT_VIDEO);
    // Ferme SDL en sortie de programme
    atexit(SDL_Quit);
    // titre de la fenetre
	SDL_WM_SetCaption(titre, titre);
	// Indique a OpenGL que le double buffering est active
	SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 );
	// Indique la taille du buffer de profondeur
	SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, profondeur);
	// indique si le flag PLEIN ECRAN est activé
    if ( plein_ecran )
        flags = flags | SDL_FULLSCREEN ;
    // initialisation du mode video de SDL
	fenetre = SDL_SetVideoMode(largeur,hauteur,profondeur, flags) ;
}
 
 
void stopSDL()
{
   SDL_Quit () ;
}