Blame view

Space_Invaders/src/Graphique/libgraph.h 4.05 KB
f8b7fad8   Martin CHAUVELIERE   Version Finale
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
  /**** Bibliotheque graphique (definitions) ****/
  
  /** Constantes **/
  
  #define COULEUR_BLANC 0
  #define COULEUR_NOIR 1
  #define COULEUR_ROUGE 2
  #define COULEUR_VERT 3
  #define COULEUR_BLEU 4
  #define COULEUR_ROSE 5
  #define COULEUR_GRIS 6
  
  #define MAX_LUTINS 16
  
  typedef enum {toucheBas, toucheHaut, quitter} evenement;
  
  /** Prototypes **/
  
  /**
   * @brief cree une fenetre 2D
   *
   * @param largeur en pixels de la fenetre
   * @param hauteur en pixels de la fenetre
   * @param titre   de la fenetre (chaine de caractere)
   */
  unsigned char creerSurface (int largeur, int hauteur, char *titre);
  
  /**
   * @brief permet de charger un fichier image au format bmp (bitmap)
   *
   * @param fichier nom du fichier
   */
  unsigned char chargerSurface (char *fichier);
  
  
  /**
   * @brief permet de sauvegarder une surface en image (format bmp)
   *
   * @param fichier   nom du fichier
   * @return          0 si OK, valeur negative sinon
   */
  int sauverSurface (char *fichier);
  
  /**
   * @brief met a jour la surface d'affichage
   */
  void majSurface (void);
  
  
  /**
   * @brief libere la surface d'affichage
   *        a faire lors de la fermeture
   *        du programme
   */
  void fermerSurface (void);
  
  /**
   * @brief choisit la police de caractères à utiliser pour afficher du texte
   * @param chemin nom du fichier de police (format .ttf, voir /usr/share/fonts/truetype)
   * @param taille taille de la police
   */
  void choisirPolice(const char *chemin, int taille);
  
  /**
   * @brief   dessine un rectange de taille (l,h) aux coordonnêes
   *          (x,y) et de couleur c
   *
   * @param x 0 <= x <= l_surface
   * @param y 0 <= y <= h_surface
   * @param l largeur en pixels
   * @param h longueur en pixels
   * @param c indice de couleur voir variable couleurs dans le fichier .c
   */
  void rectanglePlein (int x, int y, int l, int h, int c);
  
  
  /**
   * @brief permet de determiner l'indice du tableau de couleur du
   *        pixel aux coordonnees (x,y)
   *
   * @param x 0 <= x <= l_surface
   * @param y 0 <= y <= h_surface
   * @return indice de couleur voire variable couleurs dans le fichier .c
   */
  int couleurPixel (int x, int y);
  
  /**
   * @brief crée un lutin à partir d'un texte
   *
   * @param texte le texte
   * @param couleur indice de couleur du texte
   * @return numero de lutin dans le tableau dynamique de lutin (< MAX_LUTINS)
   */
  int lutinTexte(char *texte, int couleur);
  
  /**
   * @brief charge un lutin à partir du fichier
   *
   * @param fichier image bitmap du lutin à charger
   * @param couleur indice de couleurs à charger
   * @return numero de lutin dans le tableau dynamique de lutin (< MAX_LUTINS)
   */
  int chargerLutin (char *fichier, int couleur);
  
  /**
   * @brief afficher un lutin aux coordonnées (x,y)
   *
   * @param lutin numero du lutin à afficher (< MAX_LUTINS)
   * @param x     abscisse de départ
   * @param y     ordonnée de départ
   */
  void afficherLutin (int lutin, int x, int y);
  
  /**
   * @brief creer un lutin de taille (l,h) aux coordonnées (x,y)
   *
   * @param x         abscisse de départ
   * @param y         ordonnée de départ
   * @param largeur   largeur du lutin
   * @param hauteur   hauteur du lutin
   * @param couleur   indice de couleur à partir du tableau _couleurs_
   * @return          indice du lutin dans le tableau global (< MAX_LUTINS)
   */
  int creerLutin (int x, int y, int largeur, int hauteur, int couleur);
  
  /**
   * @brief       sauvegarde un lutin dans un fichier
   *
   * @param lutin numero de lutin à sauvegarder (< MAX_LUTINS)
   * @param nom   fichier pour la sauvegarde
   * @return      0 si OK valeur négative sinon
   */
  int sauverLutin (int lutin, char *nom);
  
  /**
   * @brief calcule la taille (largeur,hauteur) d'un lutin
   *
   * @param lutin     index du lutin (< MAX_LUTINS)
   * @param largeur   pointeur sur la largeur
   * @param hauteur   pointeur sur la hauteur
   */
  void tailleLutin (int lutin, int *largeur, int *hauteur);
  
  /**
   * @brief lire une touche au clavier
   *
   * @param evt    pointeur sur evenement
   * @param touche pointeur sur la touche pressée
   * @param detail NULL ou keysim
   */
  void lireEvenement (evenement *evt, char *touche, void **detail);
  
  /**
   * @brief attente d'un evenement bouton, souris, fin de programme
   */
  void attendreEvenement (void);