Salut
J’ai récemment décidé de m’intéresser a la bibliothèque SDL2 et je suis tombée sur ce site. Cependant dès la création d’une fenêtre un problème se pose, plutôt que de tenter de l’expliquer sans vraiment bien y arriver voici une illustration du problème :
Ca fait bientôt 2 bonnes heures que je cherches une solution au problème en vain. J’avais émis l’hypothèse (un peu foireuse) selon laquelle il fallait remplir le fond manuellement mais toujours rien. Pour le code il s’agit de celui du cours en remplaçant juste le delay par une fonction pause :
#include <stdio.h>
#include <stdlib.h>
#include <SDL2/SDL.h>
void pause();
int main(int argc, char const *argv[]) {
SDL_Window *window = NULL;
SDL_Renderer *renderer = NULL;
int statut = EXIT_FAILURE;
SDL_Color blue = {0, 0, 255, 255};
//init window and renderer
if(0 != SDL_Init(SDL_INIT_VIDEO)) {
fprintf(stderr, "Erreur SDL_Init : %s", SDL_GetError());
goto Quit;
}
window = SDL_CreateWindow("CECI EST UN TEST", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
640, 480, SDL_WINDOW_SHOWN);
if(NULL == window) {
fprintf(stderr, "Erreur SDL_CreateWindow : %s", SDL_GetError());
goto Quit;
}
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
if(NULL == renderer) {
fprintf(stderr, "Erreur SDL_CreateRenderer : %s", SDL_GetError());
goto Quit;
}
//end
//blue window
if(0 != SDL_SetRenderDrawColor(renderer, blue.r, blue.g, blue.b, blue.a)) {
fprintf(stderr, "Erreur SDL_SetRenderDrawColor : %s", SDL_GetError());
goto Quit;
}
if(0 != SDL_RenderClear(renderer)) {
fprintf(stderr, "Erreur SDL_SetRenderDrawColor : %s", SDL_GetError());
goto Quit;
}
//end
pause();
statut = EXIT_SUCCESS;
Quit:
if(NULL != renderer)
SDL_DestroyRenderer(renderer);
if(NULL != window)
SDL_DestroyWindow(window);
SDL_Quit();
return statut;
}
void pause () {
int continuer = 1;
SDL_Event event;
while(continuer) {
SDL_WaitEvent(&event);
switch(event.type) {
case SDL_QUIT :
continuer = 0;
}
}
}
Merci d’avance
+0
-0