Je suis sur la cours du language C, ou on s'amuse avec la SDL. L'un des exercices est de faire un dégradé du blanc vers le noir.
Hors ma fenêtre reste noir et je ne comprend pas pourquoi...
J'ai comparer mon code à celui de matteo, et au mien également (un autre dégradé qui lui fonctionne sans problème).
J'aimerais comprendre mon erreur si quelqu'un pouvait m'aider...
PS : Oui, SDL.dll est bien dans le dossier de mon programme.
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <SDL/SDL.h>
void pause();
int main ( int argc, char** argv )
{
// Initialisation et test de la SDL
if (SDL_Init(SDL_INIT_VIDEO) == -1)
{
fprintf(stderr, "Erreur d'initialisation de la SDL: %s", SDL_GetError());
exit(EXIT_FAILURE);
}
// Déclaration des variables
SDL_Surface *ecran = NULL, *lignes[256] = {NULL};
SDL_Rect position;
int i = 0, b = 255;
// Première surface écran
ecran = SDL_SetVideoMode(640, 256, 32, SDL_HWSURFACE);
// Création d'un dégradé du blanc vers le noir sur toute la surface de l'écran
for(i = 0; i <= 255; i++)
{
lignes[i] = SDL_CreateRGBSurface(SDL_HWSURFACE, 640, 1, 32, 0,0,0,0);
for (b = 255; b >= 0; b--)
{
SDL_FillRect(lignes[i], NULL, SDL_MapRGB(lignes[i] -> format, b, b, b));
}
position.x = 0;
position.y = i;
SDL_BlitSurface(lignes[i], NULL, ecran, &position);
}
// Actualisation de l'écran et maintiens de la fenêtre
SDL_Flip(ecran);
pause();
// On libère et quitte décemment la SDL
for (i = 0; i <= 255; i++)
{
SDL_FreeSurface(lignes[i]);
}
SDL_Quit();
return EXIT_SUCCESS;
}
// Fonction donner dans le cours pour le maintiens de la fenêtre
void pause()
{
int continuer = 1;
SDL_Event event;
while (continuer)
{
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
}
}
}
Merci à vous !
Un simple dégradé du blanc vers le noir
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.