/*!\file animations.h
 *
 * \brief Votre espace de liberté : c'est ici que vous pouvez ajouter
 * vos fonctions de transition et d'animation avant de les faire
 * référencées dans le tableau _animations du fichier \ref window.c
 *
 * Des squelettes d'animations et de transitions sont fournis pour
 * comprendre le fonctionnement de la bibliothèque. En bonus des
 * exemples dont un fondu en GLSL.
 *
 * \author Farès BELHADJ, amsi@up8.edu
 * \date April 12, 2023
 */
#ifndef _ANIMATIONS_H

#define _ANIMATIONS_H

#define MON_TEMPS							\
  static float __t0 = -1.0f, __prev_t = 0.0f, __t = 0.0f;		\
  if(__t0 < 0.0f) __t0 = __prev_t = __t = (float)(gl4dGetElapsedTime() / 1000.0); \
  float duree = (__t = (float)(gl4dGetElapsedTime() / 1000.0)) - __t0, delta = __t - __prev_t; \
  __prev_t = __t;(void)duree;(void)delta;


#ifdef __cplusplus
extern "C" {
#endif

  extern void fondu(void (* a0)(int), void (* a1)(int), Uint32 t, Uint32 et, int state);
  extern void noir(int state);
  extern void huit(int state);
  extern void rouge(int state);
  extern void vert(int state);
  extern void bleu(int state);
  extern void beep(int state);
  extern void beep2(int state);
  extern void beebegin(int state);
  extern void bee2(int state);
  extern void bee3(int state);
  extern void bee4(int state);
  extern void bee5(int state);
  extern void bee6(int state);
  extern void bee7(int state);
  extern void animationsInit(void);

  /* spi.c */
  extern void spi(int state);

  /* credits.c */
  extern void credits(int state);

  
#ifdef __cplusplus
}
#endif

#endif
