Bonjour,
je développe une appli 3D pour windows. J'ai dans mon main, une boucle principale qui se charge de récupérer les messages windows (par GetMessage) puis les traite (DispatchMessage) et enfin, dessine ma scene. Le code est le suivant :
Le problème est que ma fonction drawScene peut mettre un peu de temps (quelques dixièmes de secondes) et donc si j'appuie longtemps sur une touche, le message windows s'empile et mon appli devient non réactive tant qu'il reste des messages à traiter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 int WINAPI main (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow){ ... while (GetMessage(&msg, NULL, 0, 0)){ DispatchMessage(&msg); drawScene(rc.right, rc.bottom); } ... return 0; }
En fait, je fais un visualiseur de villes et donc j'ai des touches pour avancer, reculer, pivoter, etc... et si on veut avancer par exemple, on a naturellement tendance a appuyer longtemps sur la touhe avancer ce qui provoque ce problème.
Je me demandais s'il existait un moyen de pour ne pas prendre en compte certains messages pour garder un gameplay correct.
Merci.
Partager