Salut
J'ai fait appel à la fonction du SdZ pour mettre en pause le programme, seulement il ne le fait pas ! Le code :
void pause();
int main (int argc, char *argv[])
{
SDL_Surface *ecran = NULL, *lignes[512] = {NULL};
SDL_Rect position;
int i = 0;
SDL_Init(SDL_INIT_VIDEO);
ecran = SDL_SetVideoMode(640, 512, 32, SDL_HWSURFACE);
for (i = 0 ; i <= 512 ; i++)
lignes[i] = SDL_CreateRGBSurface(SDL_HWSURFACE, 640, 1, 32, 0, 0, 0, 0);
SDL_WM_SetCaption("Mon dégradé en SDL !", NULL);
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
for (i = 0 ; i <= 255 ; i++)
{
position.x = 0; // Les lignes sont à gauche (abscisse de 0)
position.y = i; // La position verticale dépend du numéro de la ligne
SDL_FillRect(lignes[i], NULL, SDL_MapRGB(ecran->format, i, i, i));
SDL_BlitSurface(lignes[i], NULL, ecran, &position);
}
int ligne = 256;
int couleur = 256;
while (ligne <=512)
{
position.x = 0; // Les lignes sont à gauche (abscisse de 0)
position.y = ligne; // La position verticale dépend du numéro de la ligne
SDL_FillRect(lignes[ligne], NULL, SDL_MapRGB(ecran->format, couleur, couleur, couleur));
SDL_BlitSurface(lignes[ligne], NULL, ecran, &position);
ligne++;
couleur--;
}
SDL_Flip(ecran);
pause();
for (i = 0 ; i <= 255 ; i++) // N'oubliez pas de libérer les 512 surfaces
SDL_FreeSurface(lignes[i]);
SDL_Quit();
return EXIT_SUCCESS;
}
void pause()
{
int continuer = 1;
SDL_Event event;
while (continuer)
{
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
}
}
}