Bonjour a tous.
J'ai un petit soucis.
J'ai crée une classe IntputDevice qui permet de gérer les entrées (clavier souris)
dans cette classe j'ai une fonction manage:
Cette fonction est déclarée en statique pour permettre l'utilisation de thread.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 int InputDevice::manage(void *unused){ InputDevice* maClasse = (InputDevice*)unused; SDL_Event event; while(maClasse->isRunning()){ SDL_PollEvent(&event); switch (event.type) { case SDL_KEYDOWN: Log::logOn(WARNING,"touche presse"); break; case SDL_QUIT: Log::logOn(WARNING,"quit"); exit(0); break; default: //Log::logOn(WARNING,"Evenement non gere"); break; } } return 0; }
elle sert de teste a l'heure actuelle et je n'utilise que le clavier.
Sur mon main je crée une fenêtre et je lance un thread sur cette fonction.
Les evenements ne sont pas traité je n'arrive pas a détecter les pressions sur les touches et j'arrive non plus a fermer la fenêtre.
Je me suis dis j'ai peut être merdé quelque part. Alors je ne crée pas de thread et j'exécute directement la fonction et la ça marche , a la fois le clavier et la fermeture de la fenêtre. J'en déduit donc que j'ai un probleme avec le thread.
Alors je me relance je creer un thread et je le fait attendre avec la fonction SDL_WaitThread mais la toujours pareil les evenements ne sont pas reconnu ...
quelqu'un a une idée ?
Partager