SDL_Thread, sprites et boucles
salut tout le monde,
j'ai un problème avec les threads sur SDL, dans le cadre de la gestion de sprites, j'ai créé un thread pour changer l'image tout les x ms.
en gros:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
// dans la classe srpite je créer un thread avec en parametre le pointeur vers l'objet lui meme...
thread = SDL_CreateThread(ThreadFunc, this);
//du code ....
//...
//la fonction du thread
int ThreadFunc(void* Data)
{
//je converti le parametre Data en un pointeur vers l'objet Sprite
Sprite* sprite = (Sprite*)Data;
//et je boucle..
while(1){
SDL_Delay(10);
//la méthode line() de la classe sprite change l'image
sprite->line();
}
return 0;
} |
et ... l'image ne change pas...
par contre si je remplace la fonction par :
Code:
1 2 3 4 5 6 7 8
|
int ThreadFunc(void* Data)
{
Sprite* sprite = (Sprite*)Data;
sprite->line();
return 0;
} |
et ben l'image change une fois...
j'avoue ne pas comprendre grand chose, y a t'il un aspect des threads que je n'ai pas compris? ou une erreur bête? ou encore une astuce?
merci d'avance pour vos réponses