Je travaille sur une interface graphique simple, et j'essaie d'utiliser la bibliothèque SDL avec peu de succès. Je développe en langage C, et je ne peux pas passer en C++. J'utilise SDL 2.0.5 sur un poste de travail Linux (Red Hat Enterprise Server 5 (Tikanga)).SDL 2 se bloque lors de l'interrogation des événements
Le problème est que lorsque j'essaie d'attraper des événements, la fenêtre se bloque. Pas de réponse, 100% d'utilisation du processeur, et je dois tuer le processus. Cliquer sur le "x" n'a aucun effet. J'ai écrit un code de test simple pour comprendre le problème, mais je ne sais vraiment pas quoi faire. On dirait que le "printf" interne n'est jamais atteint.
En outre, si je supprime la boucle d'événement, SDL_Quit() est atteint (pas besoin de tuer le processus) et il me donne un "défaut de segmentation".
#include <SDL.h>
#include <SDL_events.h>
SDL_Window *mainWin;
SDL_Event mainEv;
int quit = 0;
if(SDL_Init(SDL_INIT_VIDEO) != 0)
{
printf("Init error.\n");
return(1);
}
mainWin = SDL_CreateWindow("Title", 0, 0, 640, 480, 0);
while(!quit)
{
while(SDL_PollEvent(&mainEv))
{
printf("Event!\n");
switch(mainEv.type)
{
case SDL_KEYDOWN:
quit=1;
}
}
}
SDL_Quit();
Vous faites 'quit = 0' mais votre condition de boucle est'! Quit' ce qui signifie que 'quit' doit être non nul pour sortir de la boucle (et fermer la fenêtre). Changer cette ligne à 'quit = 1' semble résoudre le problème. –
Désolé, j'ai fait une erreur lors de la copie du code. Le problème persiste. – AlbyV0D