2010-11-06 6 views
1

J'ai une application SDL et je veux redimensionner la fenêtre. J'ai donc mis un drapeau correct dans SDL_SetVideoMode() et ai fait un gestionnaire d'événement. Mais quand je redimensionne la fenêtre, le gestionnaire n'est pas activé. Je ne sais pas pourquoi.SDL_VIDEORESIZE ne fonctionne pas

Code de ma boucle d'événement:

while (SDL_PollEvent (&event)); 
{ 
    if (event.type == SDL_QUIT) 
     return 0+1; 
    else if (event.type == SDL_VIDEORESIZE) 
    { 
     board.x = static_cast<int> (static_cast<float> (event.resize.w - 2 * hMargin)/Field + 0.5f); 
     board.y = static_cast<int> (static_cast<float> (event.resize.h - 2 * vMargin - Face - FaceSpace)/Field + 0.5f); 
     return 0; 
    } 
} 

return 0 + 1 est pour la sortie réussie (rendements principaux 0); return 0 est pour le redémarrage de l'application (faire un autre SetVideoMode).

Cela ressemble à quand je redimensionne la fenêtre, l'événement n'est pas envoyé. J'utilise la version SDL 1.2.14.

EDIT:

J'ai écrit un exemple de programme, et cela a fonctionné. Mais je l'ai regardé à nouveau le code et ... vu un point-virgule après while() -.-

+0

Pouvez-vous poster un complet, un minimum Programme SDL qui démontre le problème? – genpfault

+1

Oui, semble que ";" est la culpabilité :) –

Répondre

1
  1. Je crois que vous pouvez simplement appeler SDL_SetVideoMode() sans quitter SDL pour redimensionner
  2. ; après tout que Diego Sevilla a remarqué
  3. Il y a une option pour créer un écran redimensionnable automatique juste au cas où vous ne saviez pas

http://www.libsdl.org/cgi/docwiki.cgi/SDL_SetVideoMode dit tout