Classes | Typedefs | Functions

# src/USpeedGameEngine_MinCAPI.h File Reference

API C minimaliste d'utilisation du USpeedGameEngine. More...

Go to the source code of this file.

## Classes

struct | USGE_MinCAPI_KeyFrame
| Structure de définition d'une trame clé pour l'animation. More...

## Typedefs

typedef struct USGE_MinCAPI_KeyFrame | USGE_MinCAPI_KeyFrame
| Structure de définition d'une trame clé pour l'animation.

## Functions

int | USGE_CAPI_main (const char *appTitle, int argNumber, char *argList[], void(*customInit)(void), void(*customMain)(unsigned long int), void(*customFinish)(void))
| Définition du point d'entrée de l'application.
const char * | USGE_CAPI_engineVersion ()
| Retourne la version du moteur USpeed Game Engine.
float | USGE_CAPI_screenRatio ()
| Retourne le rapport "Largeur/Hauteur" de l'écran.
void | USGE_CAPI_windowIcon (unsigned int iconId)
| Choix de l'id de l'icône de l'application Win32 dans les ressources.
void * | USGE_CAPI_newSurface2D (const char *imgFilename, int isPNG)
| Allocation d'une nouvelle surface 2D.
void | USGE_CAPI_deleteSurface2D (void *surface)
| Désallocation d'une surface 2D.
void | USGE_CAPI_sizeSurface2D (void *surface, float width, float height)
| Détermination de la taille d'une surface 2D.
void | USGE_CAPI_positionSurface2D (void *surface, float x, float y)
| Détermination de la position d'une surface 2D.
void | USGE_CAPI_uvMapSurface2D (void *surface, float xStart, float yStart, float xEnd, float yEnd)
| Détermination des coordonnées d'application de la texture d'une surface 2D.
void | USGE_CAPI_layerSurface2D (void *surface, float z)
| Détermination de la profondeur (position du calque) d'une surface 2D.
void | USGE_CAPI_renderSurface2D (void *surface)
| Affichage de la surface 2D.
void | USGE_CAPI_animationSurface2D (void *surface, void *anim)
| Permet de définir l'animation associée à une surface 2D.
void * | USGE_CAPI_newAnimation ()
| Allocation d'une nouvelle animation.
void | USGE_CAPI_deleteAnimation (void *anim)
| Désallocation d'une animation.
void | USGE_CAPI_resetAnimation (void *anim)
| Suppression de toutes les trames clé pour l'animation.
void | USGE_CAPI_addKeyFrameAnimation (void *anim, USGE_MinCAPI_KeyFrame keyFrame)
| Ajoute une trame clé pour l'animation.
void | USGE_CAPI_playAnimation (void *anim)
| Lancement de l'animation.
void | USGE_CAPI_stopAnimation (void *anim)
| Arrêt et retour au début de l'animation.
void | USGE_CAPI_pauseAnimation (void *anim)
| Mise en pause de l'animation.
void | USGE_CAPI_loopAnimation (void *anim, int activate)
| Mise en boucle de l'animation de la surface 2D.
void | USGE_CAPI_resetChrono ()
| Remise à zéro du chronomètre.
void | USGE_CAPI_runChrono ()
| Lancement du chronomètre.
void | USGE_CAPI_pauseChrono ()
| Mise en pause du chronomètre.
unsigned long int | USGE_CAPI_readChrono ()
| Récupération du temps écoulé (en millisecondes) du chronomètre.
void | USGE_CAPI_delayKeyboard (unsigned int keyNum, unsigned long int first, unsigned long int next)
| Permet de définir le temps minimum autorisé...
int | USGE_CAPI_readKeyboard (unsigned int keyNum)
| Retourne l'état d'une touche du clavier.
int | USGE_CAPI_readMouse (unsigned int keyNum)
| Retourne l'état d'un bouton de la souris.
int | USGE_CAPI_wheelMouse ()
| Retourne l'état de la molette de la souris.
void | USGE_CAPI_resetWheelMouse ()
| Remet l'état de la molette de la souris à l'initial est 0.
void | USGE_CAPI_positionMouse (long int *x, long int *y)
| Récupère la position du curseur de la souris et l'affecte aux données fournies.
void | USGE_CAPI_moveMouse (long int x, long int y)
| Positionne le curseur de la souris.
void | USGE_CAPI_delayMouse (unsigned int clickNum, unsigned long int first, unsigned long int next)
| Permet de définir le temps minimum autorisé.
void | USGE_CAPI_selectPad (unsigned int choice)
| Définition du contrôleur de jeu à utiliser (Win32 uniquement).
int | USGE_CAPI_povPad (unsigned int povDir)
| Retourne l'état d'une direction du POV (Point Of View).
void | USGE_CAPI_delayPad (unsigned int btnNum, unsigned long int first, unsigned long int next)
| Permet de définir le temps minimum autorisé.
int | USGE_CAPI_readPad (unsigned int btnID)
| Retourne l'état d'un bouton de la manette choisie.

## Detailed Description

API C minimaliste d'utilisation du USpeedGameEngine.

Inclusion de l'intégralité des classes des fonctions C de l'API-C du USpeedGameEngine.

## Function Documentation

void USGE_CAPI_addKeyFrameAnimation | ( | void * | anim,
|  | USGE_MinCAPI_KeyFrame | keyFrame |
| ) |  |  |

Ajoute une trame clé pour l'animation.

Le système de trames clé fonctionne selon le schéma suivant :

Author:
  U.Speed

See also:
  void USpeedGameEngine::Animation::addKeyFrame(USGE_KeyFrame keyFrame)

Parameters:

  | anim | void* : le pointeur valide de l'animation.
  | keyFrame | USGE_MinCAPI_KeyFrame : les informations sur la trame clé

void USGE_CAPI_animationSurface2D | ( | void * | surface,
|  | void * | anim |
| ) |  |  |

Permet de définir l'animation associée à une surface 2D.

Author:
  U.Speed

Parameters:

  | surface | void* : le pointeur valide de la surface.
  | anim | void* : l'animation à affecter ou le pointeur nul pour aucune animation.

void USGE_CAPI_delayKeyboard | ( | unsigned int | keyNum,
|  | unsigned long int | first,
|  | unsigned long int | next |
| ) |  |  |

Permet de définir le temps minimum autorisé...

- ... entre la première pression et la seconde
- ... entre la seconde pression et les suivantes

Author:
  U.Speed

See also:
  void USpeedGameEngine::InputControl::Keyboard::setKeyDelay(unsigned int keyNum, unsigned long int first, unsigned long int next)

Parameters:

  | keyNum | unsigned int : le n° du bouton concerné (> 0)
  | first | unsigned long int : temps minimum autorisé entre la première pression et la seconde
  | next | unsigned long int : temps minimum autorisé entre la première pression et les suivantes

void USGE_CAPI_delayMouse | ( | unsigned int | clickNum,
|  | unsigned long int | first,
|  | unsigned long int | next |
| ) |  |  |

Permet de définir le temps minimum autorisé.

- ... entre la première pression et la seconde
- ... entre la seconde pression et les suivantes

Author:
  U.Speed

See also:
  void USpeedGameEngine::InputControl::Mouse::setClickDelay(unsigned int clickNum, unsigned long int first, unsigned long int next)

Parameters:

  | clickNum | unsigned int : le n° du clic concerné.
  - "1" : le clic gauche.
  - "2" : le clic droit.
  - "3" : le clic du milieu.
  | first | unsigned long int : temps minimum autorisé entre la première pression et la seconde
  | next | unsigned long int : temps minimum autorisé entre la première pression et les suivantes

void USGE_CAPI_delayPad | ( | unsigned int | btnNum,
|  | unsigned long int | first,
|  | unsigned long int | next |
| ) |  |  |

Permet de définir le temps minimum autorisé.

- ... entre la première pression et la seconde
- ... entre la seconde pression et les suivantes

Author:
  U.Speed

See also:
  void USpeedGameEngine::InputControl::Pad::setBtnDelay(unsigned int btnNum, unsigned long int first, unsigned long int next)

Parameters:

  | btnNum | unsigned int : le n° du bouton concerné (> 0)
  | first | unsigned long int : temps minimum autorisé entre la première pression et la seconde
  | next | unsigned long int : temps minimum autorisé entre la première pression et les suivantes

void USGE_CAPI_deleteAnimation | ( | void * | anim | ) |

Désallocation d'une animation.

Author:
  U.Speed

Parameters:

  | anim | void* : le pointeur valide de l'animation à supprimer.

void USGE_CAPI_deleteSurface2D | ( | void * | surface | ) |

Désallocation d'une surface 2D.

Author:
  U.Speed

Parameters:

  | surface | void* : le pointeur valide de la surface à supprimer.

const char* USGE_CAPI_engineVersion | ( |  | ) |

Retourne la version du moteur USpeed Game Engine.

Author:
  U.Speed

Returns:
  const char* : la chaîne d'identification de la version du moteur.

void USGE_CAPI_layerSurface2D | ( | void * | surface,
|  | float | z |
| ) |  |  |

Détermination de la profondeur (position du calque) d'une surface 2D.

Voici comment se représenter la profondeur :

Le calque le plus bas est celui qui sera recouvert par les autre.
Attention dans le cas de la transparence de surfaces : lors du rendu des surfaces, vous devez afficher les surfaces dans l'ordre du plus profond au moins profond.

Author:
  U.Speed

Parameters:

  | surface | void* : le pointeur valide de la surface.
  | z | float : la profondeur du calque (entre 0.0f et 200.0f). "0.0f" correspond au calque de plus bas niveau. "200.0f" correspond au calque de plus haut niveau.

void USGE_CAPI_loopAnimation | ( | void * | anim,
|  | int | activate |
| ) |  |  |

Mise en boucle de l'animation de la surface 2D.

Author:
  U.Speed

See also:
  void USpeedGameEngine::Animation::loop(bool active)

Parameters:

  | anim | void* : le pointeur valide de la surface.
  | activate | int : `0` pour désactiver la mise en boucle.

int USGE_CAPI_main | ( | const char * | appTitle,
|  | int | argNumber,
|  | char * | argList[],
|  | void(*)(void) | customInit,
|  | void(*)(unsigned long int) | customMain,
|  | void(*)(void) | customFinish |
| ) |  |  |

Définition du point d'entrée de l'application.

Point d'entrée du USpeedGameEngine - version C-API : lancement du programme.

Author:
  U.Speed

See also:
  void USpeedGameEngine::Core::setApplicationTitle(const char *title)
  int USpeedGameEngine::Core::run(int argNumber, char *argList[], void (*customInit)(void), void (*customMain)(unsigned long int), void (*customFinish)(void), USGE_RenderEngine renderEngine)

Parameters:

  | appTitle | const char* : le titre de l'application Win32
  | argNumber | int : le nombre d'arguments passés
  | argList | char *[] : liste des arguments passés
  | customInit | void (*)(void) : pointeur de fonction pour l'initialisation côté utilisateur
  | customMain | void (*)(unsigned long int) : pointeur de fonction pour le traitement principal côté utilisateur (qui prend en paramètre, le temps écoulé depuis le dernier appel)
  | customFinish | void (*)(void) : pointeur de fonction pour la finalisation côté utilisateur

Returns:
  int : le code de retour de l'application
  - 0 : pas d'erreur
  - 1 : ERREUR : instance du noyau (Core) introuvable
  - 2 : ERREUR : pas de traitement principal (customMain = 0)

void USGE_CAPI_moveMouse | ( | long int | x,
|  | long int | y |
| ) |  |  |

Positionne le curseur de la souris.

See also:
  void USpeedGameEngine::InputControl::Mouse::setPosition(long int x, long int y)

Author:
  U.Speed

Parameters:

  | x | long int : coordonnée X de la position du curseur
  | y | long int : coordonnée Y de la position du curseur

void* USGE_CAPI_newAnimation | ( |  | ) |

Allocation d'une nouvelle animation.

Author:
  U.Speed

Returns:
  void* : le pointeur d'une donnée d'animation (interne, non typé ici). Retourne un pointeur nul si une erreur s'est produite.

void* USGE_CAPI_newSurface2D | ( | const char * | imgFilename,
|  | int | isPNG |
| ) |  |  |

Allocation d'une nouvelle surface 2D.

Author:
  U.Speed

Parameters:

  | imgFilename | const char* : le nom du fichier de l'image JPG ou PNG à charger en tant que texture.
  | isPNG | int : l'image est-elle une PNG ou une JPEG ?
  - 0 : il s'agit d'une JPEG
  - autre : il s'agit d'une PNG (avec gestion éventuelle de la transparence)

Returns:
  void* : le pointeur d'une donnée de surface (interne, non typé ici). Retourne un pointeur nul si une erreur s'est produite.

void USGE_CAPI_pauseAnimation | ( | void * | anim | ) |

Mise en pause de l'animation.

Author:
  U.Speed

See also:
  void USpeedGameEngine::Animation::pause()

Parameters:

  | anim | void* : le pointeur valide de l'animation.

void USGE_CAPI_pauseChrono | ( |  | ) |

Mise en pause du chronomètre.

See also:
  void USpeedGameEngine::Chrono::pause()

Author:
  U.Speed

void USGE_CAPI_playAnimation | ( | void * | anim | ) |

Lancement de l'animation.

Author:
  U.Speed

See also:
  void USpeedGameEngine::Animation::start()

Parameters:

  | anim | void* : le pointeur valide de l'animation.

void USGE_CAPI_positionMouse | ( | long int * | x,
|  | long int * | y |
| ) |  |  |

Récupère la position du curseur de la souris et l'affecte aux données fournies.

Les pointeurs peuvent être nuls.

Author:
  U.Speed

See also:
  void USpeedGameEngine::InputControl::Mouse::getPosition(long int *x, long int *y)

Parameters:

  | x | long int* : coordonnée X de la position du curseur
  | y | long int* : coordonnée Y de la position du curseur

void USGE_CAPI_positionSurface2D | ( | void * | surface,
|  | float | x,
|  | float | y |
| ) |  |  |

Détermination de la position d'une surface 2D.

Par défaut, les valeurs sont (0.0f, 0.0f) pour que l'image soit placée en haut à gauche de l'écran.
Les valeurs (x, y) sont un multiple de la hauteur de l'écran. Par exemple, si x vaut 1.0f, la surface sera déplacée de (1.0f * hauteurEcran) vers la droite.
L'axe des Y est inversée : si vous voulez afficher l'image vers le bas de l'écran, il faut fournir une hauteur positive.
Illustration :

Author:
  U.Speed

See also:
  void USpeedGameEngine::Surface2D::setPosition(float x, float y)

Parameters:

  | surface | void* : le pointeur valide de la surface.
  | x | float : position X de la surface (par rapport à l'écran).
  | y | float : position Y de la surface (par rapport à l'écran).

int USGE_CAPI_povPad | ( | unsigned int | povDir | ) |

Retourne l'état d'une direction du POV (Point Of View).

Author:
  U.Speed

See also:
  bool USpeedGameEngine::InputControl::Pad::getPovState(USGE_InputControl pov)

Parameters:

  | povDir | unsigned int : la direction concernée
  - "1" : Haut
  - "2" : Bas
  - "3" : Gauche
  - "4" : Droite

Returns:
  int : `!= 0` si la direction est en cours d'utilisation

unsigned long int USGE_CAPI_readChrono | ( |  | ) |

Récupération du temps écoulé (en millisecondes) du chronomètre.

See also:
  unsigned long int USpeedGameEngine::Chrono::getTime()

Author:
  U.Speed

int USGE_CAPI_readKeyboard | ( | unsigned int | keyNum | ) |

Retourne l'état d'une touche du clavier.

Author:
  U.Speed

See also:
  bool USpeedGameEngine::InputControl::Keyboard::getKeyState(unsigned int keyNum);

Parameters:

  | keyNum | unsigned int : le n° de la touche concernée (entre 0 et 255 compris)

Returns:
  int : `!= 0` si le touche est enfoncée (et que le délai le permet)

int USGE_CAPI_readMouse | ( | unsigned int | btn | ) |

Retourne l'état d'un bouton de la souris.

Author:
  U.Speed

See also:
  bool USpeedGameEngine::InputControl::Mouse::getClickState(USGE_InputControl btn)

Parameters:

  | btn | unsigned int : le bouton concerné.
  - "1" : le clic gauche.
  - "2" : le clic droit.
  - "3" : le clic du milieu.

Returns:
  int : `!= 0` si le bouton est enfoncé.

int USGE_CAPI_readPad | ( | unsigned int | btnID | ) |

Retourne l'état d'un bouton de la manette choisie.

Author:
  U.Speed

See also:
  bool USpeedGameEngine::InputControl::Pad::getBtnState(unsigned int btnID)

Parameters:

  | btnID | unsigned int : le n° du bouton concerné (> 0)

Returns:
  int : `!= 0` si le bouton est enfoncé (et que le délai le permet)

void USGE_CAPI_renderSurface2D | ( | void * | surface | ) |

Affichage de la surface 2D.

Author:
  U.Speed

See also:
  void USpeedGameEngine::Object3D::render()

Parameters:

  | surface | void* : le pointeur valide de la surface.

void USGE_CAPI_resetAnimation | ( | void * | anim | ) |

Suppression de toutes les trames clé pour l'animation.

Author:
  U.Speed

See also:
  void USpeedGameEngine::Animation::removeAll()

Parameters:

  | anim | void* : le pointeur valide de l'animation.

void USGE_CAPI_resetChrono | ( |  | ) |

Remise à zéro du chronomètre.

See also:
  void USpeedGameEngine::Chrono::reset()

Author:
  U.Speed

void USGE_CAPI_resetWheelMouse | ( |  | ) |

Remet l'état de la molette de la souris à l'initial est 0.

Author:
  U.Speed

See also:
  void USpeedGameEngine::InputControl::Mouse::resetWheel()

void USGE_CAPI_runChrono | ( |  | ) |

Lancement du chronomètre.

See also:
  void USpeedGameEngine::Chrono::unpause()

Author:
  U.Speed

float USGE_CAPI_screenRatio | ( |  | ) |

Retourne le rapport "Largeur/Hauteur" de l'écran.

Author:
  U.Speed

Returns:
  float : le rapport "Largeur/Hauteur". Exemple : 16/9.

void USGE_CAPI_selectPad | ( | unsigned int | choice | ) |

Définition du contrôleur de jeu à utiliser (Win32 uniquement).

Valeur comprise entre 1 et USPEED_FW_PAD_MAX_COUNT inclus.

Author:
  U.Speed

See also:
  void USpeedGameEngine::InputControl::Pad::setCurrentPad(unsigned int choice)

Parameters:

  | choice | unsigned int : le n° de manette

void USGE_CAPI_sizeSurface2D | ( | void * | surface,
|  | float | width,
|  | float | height |
| ) |  |  |

Détermination de la taille d'une surface 2D.

La hauteur et la largeur de la surface fournis sont multipliés par la hauteur de l'écran.
Ainsi pour obtenir une surface de la taille de l'écran, il faut fournir les paramètres suivants :

       width  = 1.0f * USGE_CAPI_screenRatio();
       height = 1.0f;

Illustration :

Author:
  U.Speed

See also:
  void USpeedGameEngine::Surface2D::setSize(float width, float height)

Parameters:

  | surface | void* : le pointeur valide de la surface.
  | width | float : largeur de la surface (par rapport à l'écran). Valeur >= 0.0f.
  | height | float : hauteur de la surface (par rapport à l'écran). Valeur >= 0.0f.

void USGE_CAPI_stopAnimation | ( | void * | anim | ) |

Arrêt et retour au début de l'animation.

Author:
  U.Speed

See also:
  void USpeedGameEngine::Animation::stop()

Parameters:

  | anim | void* : le pointeur valide de l'animation.

void USGE_CAPI_uvMapSurface2D | ( | void * | surface,
|  | float | xStart,
|  | float | yStart,
|  | float | xEnd,
|  | float | yEnd |
| ) |  |  |

Détermination des coordonnées d'application de la texture d'une surface 2D.

Voici comment sont interprêtées les valeurs :

A noter que toutes les valeurs sont comprises entre 0.0f et 1.0f. Par défaut, "xStart" et "yStart" valent 0.0f et "xEnd" et "yEnd" valent 1.0f.

Author:
  U.Speed

See also:
  void USpeedGameEngine::Surface2D::setTexturePart(float xStart, float yStart, float xEnd, float yEnd)

Parameters:

  | surface | void* : le pointeur valide de la surface.
  | xStart | float : l'abscisse de début de l'image
  | yStart | float : l'abscisse de fin de l'image
  | xEnd | float : l'ordonnée de début de l'image
  | yEnd | float : l'ordonnée de fin de l'image

int USGE_CAPI_wheelMouse | ( |  | ) |

Retourne l'état de la molette de la souris.

A chaque déplacement (unitaire ou non) de la molette vers l'avant, la valeur augmente (unitairement ou non).
A chaque déplacement (unitaire ou non) de la molette vers l'arrière, la valeur diminue (unitairement ou non).
Schéma :

Author:
  U.Speed

See also:
  int USpeedGameEngine::InputControl::Mouse::getWheel()

Returns:
  int : la valeur. L'initial est 0.

void USGE_CAPI_windowIcon | ( | unsigned int | iconId | ) |

Choix de l'id de l'icône de l'application Win32 dans les ressources.

Author:
  U.Speed

See also:
  void USpeedGameEngine::Video::setIconId(unsigned int iconId)

Parameters:

  | iconId | unsigned int : le nouvel ID