Affichage dans un thread [SDL] - C++ - Programmation
MarshPosté le 26-06-2006 à 16:16:03
Bonjour a tous,
Je m'initie en ce moment a la librairie SDL, et je voudrais realiser un simple programme qui affiche une image que l'on peut faire bouger a l'aide des fleches directionnelles. J'y arrive tres bien en introduisant une boucle infini dans la procedure main, mais comme je prevois d'introduire un systeme client-server, j'ai décidé de mettre tout ce qui concernait l'affichage dans un thread SDL. Donc je resume :
Dans la fonction main, on a la boucle qui gere les events au clavier, dans le thread my_thread, on a la boucle qui dessine.
Seulement cela ne marche pas, j'ai bien mon ecran qui s'affiche, la background, et l'image que je veux faire bouger, et quand j'appuie sur les fleches, je vois des bugs d'affichage, mon image qiu se dessine un peu partout, puis ca ne repond plus, etc... Je pense que cela vient du thread puisque sans, cela marche bien...
Est ce que c'est un probleme de conflit entre le thread et la procedure main? Faut t'il que j'utlise des mutex? Si quelqu'un a une idée je suis preneur
Merci!
Message édité par Phraides le 26-06-2006 à 16:27:03
Marsh Posté le 26-06-2006 à 16:16:03
Bonjour a tous,
Je m'initie en ce moment a la librairie SDL, et je voudrais realiser un simple programme qui affiche une image que l'on peut faire bouger a l'aide des fleches directionnelles.
J'y arrive tres bien en introduisant une boucle infini dans la procedure main, mais comme je prevois d'introduire un systeme client-server, j'ai décidé de mettre tout ce qui concernait l'affichage dans un thread SDL.
Donc je resume :
Dans la fonction main, on a la boucle qui gere les events au clavier,
dans le thread my_thread, on a la boucle qui dessine.
Seulement cela ne marche pas, j'ai bien mon ecran qui s'affiche, la background, et l'image que je veux faire bouger, et quand j'appuie sur les fleches, je vois des bugs d'affichage, mon image qiu se dessine un peu partout, puis ca ne repond plus, etc...
Je pense que cela vient du thread puisque sans, cela marche bien...
Voila mon code, un peu allégé :
Est ce que c'est un probleme de conflit entre le thread et la procedure main? Faut t'il que j'utlise des mutex?
Si quelqu'un a une idée je suis preneur
Merci!
Message édité par Phraides le 26-06-2006 à 16:27:03