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 : 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
 
// 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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