Fonction SDL_AddTimer

SDL_AddTimer -- Ajoute un timer qui appelera une fonction de rappel au bout du nombre de millisecondes spécifié.

Syntaxe

SDL_TimerID SDL_AddTimer(Uint32 interval, SDL_NewTimerCallback callback, void* param);

Fonction de rappel

/* definition du type pour la "nouvelle" fonction de rappel */
typedef Uint32 (*SDL_NewTimerCallback)(Uint32 interval, void* param);

Description

Ajoute une fonction de rappel à lancer au bout du nombre de millisecondes spécifié. La fonction de rappel reçoit la période actuelle du timer (interval) ainsi que le paramètre param spécifié lors de l'appel à SDL_AddTimer et doit renvoyer la nouvelle période du timer pour l'appel suivant. Si la valeur de retour de la fonction de rappel est la même que la valeur passée en paramètre, le timer continue au même rythme. Si la valeur retournée est 0, le timer est arrêté.

Une autre façon d'annuler un timer actif est d'appeler SDL_RemoveTimer avec la valeur identifiant le timer (renvoyée par SDL_AddTimer).

La fonction de rappel peut s'éxecuter dans un thread différent de votre programme principal, et ne devrait donc appeler aucune autre fonction SDL directement. Cependant, vous pourrez toujours appeler SDL_PushEvent.

Note : Si vous utilisez cette fonction, vous devez passer SDL_INIT_TIMER à SDL_Init.

Paramètres

interval [in]

callback [in]

param [in]

Valeur de retour

NULL

SDL_TimerID

Voir aussi

SDL_RemoveTimer, SDL_PushEvent

Example

   1 /* Demarre le timer; la fonction de rappel sera lancee apres le temps donne */
   2 
   3 delay = (33 / 10) * 10;  /* Pour arrondir à 10 ms près */
   4 my_timer_id = SDL_AddTimer(delay, my_callbackfunc, my_callback_param);
   5 
   6 ...
   7 
   8 Uint32 my_callbackfunc(Uint32 interval, void *param)
   9 {
  10     SDL_Event event;
  11     SDL_UserEvent userevent;
  12 
  13     /* Dans cet exemple, notre fonction de rappel pousse
  14     un evenement SDL_USEREVENT dans la file... */
  15 
  16     userevent.type = SDL_USEREVENT;
  17     userevent.code = 0;
  18     userevent.data1 = NULL;
  19     userevent.data2 = NULL;
  20 
  21     event.type = SDL_USEREVENT;
  22     event.user = userevent;
  23 
  24     SDL_PushEvent(&event);
  25     
  26     /* ... et demande a etre rappelee au bout du meme temps */
  27     return(interval);
  28 }

Requis

Header

SDL.h

Version

1.2.13

Shared object

libSDL.so

DLL

SDL.dll

SDLDoc-fr/SDL_AddTimer (last edited 2009-01-29 14:02:02 by AlexisDM)