Voilà j'ai resolu mon problème.
Je vais mettr mon sourceen ligne pour ce qui aurons le même problème que moi.
int main(int argc, char *argv[])
{
SDL_Surface *ecran NULL, *texte NULL;
SDL_Rect position;
SDL_Event event;
TTF_Font *police = NULL;
SDL_Color couleurNoire {0, 0, 0}, couleurRouge {255, 0,0};
int continuer = 1;
int tempsActuel 0, tempsPrecedent 0, compteur = 0, heure = 0, minute = 0, seconde = 0, Millisecondes=0;
char temps[20] = ""; /* Tableau de char suffisamment grand */
clock_t start, end;
double elapsed;
SDL_Init(SDL_INIT_VIDEO);
TTF_Init();
ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
SDL_WM_SetCaption("Gestion du texte avec SDL_ttf", NULL);
/* Chargement de la police */
police = TTF_OpenFont("angelina.ttf", 65);
/* Initialisation du temps et du texte */
tempsActuel = SDL_GetTicks();
sprintf(temps, "Temps : %d : %d : %d ", heure, minute, seconde);
texte = TTF_RenderText_Shaded(police, temps, couleurNoire, couleurRouge);
while (continuer)
{
SDL_PollEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
break;
}
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
tempsActuel = SDL_GetTicks();
if (tempsActuel - tempsPrecedent >= 100) /* Si 100ms au moins se sont écoulées */
{
Millisecondes+=tempsActuel - tempsPrecedent;
if(Millisecondes>=1000)
{
Millisecondes=Millisecondes%1000;
seconde ++;
}
if(seconde >= 60)
{
minute ++;
seconde=seconde%60;
}
if(minute >= 60)
{
heure ++;
minute=minute%60;
}
sprintf(temps, "Temps : %d : %d : %d", heure, minute, seconde );
/* On écrit dans la chaîne "temps" le nouveau temps */
SDL_FreeSurface(texte); /* On supprime la surface précédente de la mémoire avant d'en charger une nouvelle (IMPORTANT) */
texte = TTF_RenderText_Shaded(police, temps, couleurRouge, couleurNoire); /* On écrit la chaine temps dans la SDL_Surface */
tempsPrecedent = tempsActuel; /* On met à jour le tempsPrecedent */
}
position.x = 180;
position.y = 210;
SDL_BlitSurface(texte, NULL, ecran, &position); /* Blit du textecontenant le temps */
SDL_Flip(ecran);
}
TTF_CloseFont(police);
TTF_Quit();
SDL_FreeSurface(texte);
SDL_Quit();
return EXIT_SUCCESS;
}
En èspérant que cela vous serve.