Module moteur_graphique

Summary
Ce module permet la réalisation d’application graphique en mode double buffering.
Type abstrait de donnée couleur utilisé dans les surfaces
Permet la création d’une couleur RGB en fonction d’une surface, il y a dependances à cause notamment de différence entre une surface 32 ou 16 bits par exemple.
Les copies de surface se réalise à partir de ce type abstrait
Permet d’initialiser un rectangle à une certaine position et d’une certaine taille
Le type abstrait font
Permet de charger une police TTF à une certaine taille
Permet la déstruction d’une font
Ce type abstrait est une surface graphique se trouvant en mémoire vidéo.
Permet la création d’une surface d’une certaine taille, la surface est en 32 bits.
Permet d’écrire à une certaine position d’une surface une couleur
Permet de copier une surface vers une autre à certaines positions et à certaine taille
Ecrit un texte dans une surface et renvoit la surface correspondante, la surface est allouée automatiquement
Permet de charger un fichier BMP du disque dur directement dans un type surface Les tailles de la surface sont automatiquement écrite, la mémoire est automatiquement allouée.
Permet d’effacer toutes les couleurs de la surface par un rectangle noir recouvrant le tout
Permet de détruire une surface que l’on a alloué par g_surfaceCreer ou g_surfaceCharger
Ce type abstrait de donné est la fenetre principale graphique de l’application.
Permet l’initialisation d’une G_fenetre en fonction de resolution et d’un mode plein écran ou non
Permet de récuperer la surface graphique d’une fenetre
Permet d’afficher la fenetre à l’écran.
Detruit la fenetre

Documentation du module moteur_graphique

Ce module permet la réalisation d’application graphique en mode double buffering.  Il est compatible sous tous les systèmes Windows, Linux, UNIX, Mac

couleur

Type abstrait de donnée couleur utilisé dans les surfaces

Summary
Permet la création d’une couleur RGB en fonction d’une surface, il y a dependances à cause notamment de différence entre une surface 32 ou 16 bits par exemple.

Functions

g_couleurCreer

G_couleur g_couleurCreer(G_surface *surface,
int R,
int G,
int B)

Permet la création d’une couleur RGB en fonction d’une surface, il y a dependances à cause notamment de différence entre une surface 32 ou 16 bits par exemple.

Paramètres

surfacela couleur est définie selon la surface
Rniveau de rouge (entre 0 et 255)
Gniveau de vert (entre 0 et 255)
Bniveau de bleu (entre 0 et 255)

Retour

La couleur de niveau RGB

Précondition

R, G et B doivent être entre 0 et 255

rectangle

Les copies de surface se réalise à partir de ce type abstrait

Summary
Permet d’initialiser un rectangle à une certaine position et d’une certaine taille

Functions

g_rectangleInitialiser

void g_rectangleInitialiser(G_rectangle *rect,
int x,
int y,
int w,
int h)

Permet d’initialiser un rectangle à une certaine position et d’une certaine taille

Paramètres

xposition horizontale
yposition verticale
wtaille horizontale
htaille verticale

font

Le type abstrait font

Summary
Permet de charger une police TTF à une certaine taille
Permet la déstruction d’une font

Functions

g_fontCharger

G_font* g_fontCharger(char *fichier,
int taille)

Permet de charger une police TTF à une certaine taille

Paramètres

fichierle fichier du disque dur au format TTF
taillela taille de la police voulue

Retour

Renvoit un pointeur de type G_font correpondant au font chargé

Erreur

Si le fichier n’est pas trouvé, NULL est retourné

g_fontDetruire

void g_fontDetruire(G_font *font)

Permet la déstruction d’une font

Paramètre

fontla font que l’on souhaite détruire

G_surface

Ce type abstrait est une surface graphique se trouvant en mémoire vidéo.  Il est similaire à une image

Summary
Permet la création d’une surface d’une certaine taille, la surface est en 32 bits.
Permet d’écrire à une certaine position d’une surface une couleur
Permet de copier une surface vers une autre à certaines positions et à certaine taille
Ecrit un texte dans une surface et renvoit la surface correspondante, la surface est allouée automatiquement
Permet de charger un fichier BMP du disque dur directement dans un type surface Les tailles de la surface sont automatiquement écrite, la mémoire est automatiquement allouée.
Permet d’effacer toutes les couleurs de la surface par un rectangle noir recouvrant le tout
Permet de détruire une surface que l’on a alloué par g_surfaceCreer ou g_surfaceCharger

Functions

g_surfaceCreer

G_surface* g_surfaceCreer(int x,
int y)

Permet la création d’une surface d’une certaine taille, la surface est en 32 bits.

Paramètres

xtaille horizontale de la surface souhaitée
ytaille verticale de la surface souhaitée

Retour

Retourne un pointeur vers la surface qui a été allouée

Erreur

Si la fonction n’a pas réussi à allouer la mémoire pour la surface, NULL est renvoyé

g_surfaceEcrireCouleur

void g_surfaceEcrireCouleur(G_surface *surface,
int x,
int y,
G_couleur couleur)

Permet d’écrire à une certaine position d’une surface une couleur

Paramètres

surfacela surface ou l’on souhaite écrire
xla position horizontale
yla position verticale
couleurla couleur que l’on souhaite écrire

g_surfaceCopie

void g_surfaceCopie(G_surface *surface1,
G_rectangle *rect1,
G_surface *surface2,
G_rectangle *rect2)

Permet de copier une surface vers une autre à certaines positions et à certaine taille

Paramètres

surface1la surface source
rect1le rectangle contient les origines et les longueurs que l’on souhaite copier
surface2la surface destination
rect2le rectangle contient les origines et les longueurs de l’endroit que l’on souhaite copier

Si l’on souhaite copier toute la surface source, on peut plaçer rect1 à NULL, si l’on souhaite uniquement placé la source dans la destination à une certaine position sans se soucier des tailles, il suffit d’initialiser un rectangle avec les tailles à 0

g_surfaceEcrireTexte

G_surface* g_surfaceEcrireTexte(G_font *font,
char *texte,
G_couleur couleur_texte,
G_couleur couleur_fond)

Ecrit un texte dans une surface et renvoit la surface correspondante, la surface est allouée automatiquement

Paramètres

fontle font de police que l’on souhaite
textele texte que l’on souhaite écrire
couleur_textela couleur du texte
couleur_fontla couleur du fond

Retour

Retourne une surface contenant le texte aux couleurs indiqués et au font précisé

g_surfaceChargerBMP

G_surface* g_surfaceChargerBMP(char *c)

Permet de charger un fichier BMP du disque dur directement dans un type surface Les tailles de la surface sont automatiquement écrite, la mémoire est automatiquement allouée.  La surface est allouée en mémoire vidéo.

Paramètre

cchemin d’accès au fichier BMP

Retour

La fonction retourne un pointeur de surface correspondante à l’image BMP, si le fichier est introuvable ou si la mémoire n’a pas été allouée, le pointeur NULL sera retourné.

g_surfaceEfface

void g_surfaceEfface(G_surface *s)

Permet d’effacer toutes les couleurs de la surface par un rectangle noir recouvrant le tout

Paramètre

sla surface que l’on souhaite effacer

g_surfaceDetruire

void g_surfaceDetruire(G_surface *surface)

Permet de détruire une surface que l’on a alloué par g_surfaceCreer ou g_surfaceCharger

Paramètre

sla surface que l’on souhaite détruire

G_fenetre

Ce type abstrait de donné est la fenetre principale graphique de l’application.  Elle doit être unique.  Le type nécessite une initialisation préliminaire, et une destruction finale.  La G_fenetre* contient une surface graphique qui representera ce qui est affiché dedans.

Summary
Permet l’initialisation d’une G_fenetre en fonction de resolution et d’un mode plein écran ou non
Permet de récuperer la surface graphique d’une fenetre
Permet d’afficher la fenetre à l’écran.
Detruit la fenetre

Functions

g_fenetreInitialiser

int g_fenetreInitialiser(G_fenetre *fenetre,
int resolutionx,
int resolutiony,
G_fenetre_mode mode)

Permet l’initialisation d’une G_fenetre en fonction de resolution et d’un mode plein écran ou non

Paramètres

fenetrela fenetre à initialiser
resolutionxla résolution verticale de la fenetre
resolutionyla résolution horizontale de la fenetre
modele mode plein écran ou non plein écran, les valeurs possibles sont: PLEIN_ECRAN et PAS_PLEIN_ECRAN

Retour

Si la fonction a réussi à initialiser la fenetre, EXIT_SUCCESS est retournée, dans le cas contraire EXIT_FAILURE est renvoyé

g_fenetreLireSurface

G_surface* g_fenetreLireSurface(G_fenetre*)

Permet de récuperer la surface graphique d’une fenetre

Paramètres

fenetrela fenetre que l’on souhaite recuperer la surface

Retour

Un pointeur vers la surface à recuperer

g_fenetreAfficher

void g_fenetreAfficher(G_fenetre*)

Permet d’afficher la fenetre à l’écran.  Donc de mettre à jour la représentation Il est conseillé de la mettre à jour à chaque tour de boucle, l’utilité de cette fonction réside dans l’utilisation du double buffering pour éviter le phénomène de clignotement

g_fenetreDetruire

void g_fenetreDetruire(G_fenetre *fenetre)

Detruit la fenetre

Paramètre

fenetrela fenetre que l’on souhaite détruire
G_couleur g_couleurCreer(G_surface *surface,
int R,
int G,
int B)
Permet la création d’une couleur RGB en fonction d’une surface, il y a dependances à cause notamment de différence entre une surface 32 ou 16 bits par exemple.
void g_rectangleInitialiser(G_rectangle *rect,
int x,
int y,
int w,
int h)
Permet d’initialiser un rectangle à une certaine position et d’une certaine taille
G_font* g_fontCharger(char *fichier,
int taille)
Permet de charger une police TTF à une certaine taille
void g_fontDetruire(G_font *font)
Permet la déstruction d’une font
G_surface* g_surfaceCreer(int x,
int y)
Permet la création d’une surface d’une certaine taille, la surface est en 32 bits.
void g_surfaceEcrireCouleur(G_surface *surface,
int x,
int y,
G_couleur couleur)
Permet d’écrire à une certaine position d’une surface une couleur
void g_surfaceCopie(G_surface *surface1,
G_rectangle *rect1,
G_surface *surface2,
G_rectangle *rect2)
Permet de copier une surface vers une autre à certaines positions et à certaine taille
G_surface* g_surfaceEcrireTexte(G_font *font,
char *texte,
G_couleur couleur_texte,
G_couleur couleur_fond)
Ecrit un texte dans une surface et renvoit la surface correspondante, la surface est allouée automatiquement
G_surface* g_surfaceChargerBMP(char *c)
Permet de charger un fichier BMP du disque dur directement dans un type surface Les tailles de la surface sont automatiquement écrite, la mémoire est automatiquement allouée.
void g_surfaceEfface(G_surface *s)
Permet d’effacer toutes les couleurs de la surface par un rectangle noir recouvrant le tout
void g_surfaceDetruire(G_surface *surface)
Permet de détruire une surface que l’on a alloué par g_surfaceCreer ou g_surfaceCharger
int g_fenetreInitialiser(G_fenetre *fenetre,
int resolutionx,
int resolutiony,
G_fenetre_mode mode)
Permet l’initialisation d’une G_fenetre en fonction de resolution et d’un mode plein écran ou non
G_surface* g_fenetreLireSurface(G_fenetre*)
Permet de récuperer la surface graphique d’une fenetre
void g_fenetreAfficher(G_fenetre*)
Permet d’afficher la fenetre à l’écran.
void g_fenetreDetruire(G_fenetre *fenetre)
Detruit la fenetre