Outils pour utilisateurs

Outils du site


allegro:bitmaps

====== Différences ====== Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

allegro:bitmaps [2011/12/05 15:34]
mrhide [Détails]
allegro:bitmaps [2012/06/29 17:02] (Version actuelle)
mrhide [Bitmaps]
Ligne 1: Ligne 1:
-===== Bitmaps =====+===== Allegro — Bitmaps =====
  
 Dans cet article nous allons voir comment créer des bitmaps et comment dessiner dessus. Dans cet article nous allons voir comment créer des bitmaps et comment dessiner dessus.
  
-==== Buffer ​d'affichage/de dessin ====+//Note importante : Allegro 5 utilise un backend OpenGL ou DirectX pour ses Bitmaps, ce qui impose certaines contraintes :\\ 
 +Les bitmaps trop grands(dépend du matériel) ne pourront être créés, et souvent les bitmaps ne pourrons pas être de taille inférieure à 16*16.\\ 
 +De plus la plupart des systèmes n'​acceptent que des bitmaps dont la taille est une puissance de 2.\\ 
 +Si on demande à Allegro de créer un Bitmap ​d'une taille qui ne convient pas au matériel, Allegro renvoie un bitmaps ​de la première taille au dessus qui correspond.//​
  
-Allegro 5 introduit le concept de buffer d'affichage, et de buffer de dessin. Ils sont tous deux liés, à part que le buffer ​de dessin ​ne doit pas être affiché.+//Pour toutes ces raisons faites attention quand vous dessinez sur votre Bitmap, il se pourrait bien qu'il soit plus grand que vous ne le pensiez !// 
 +==== Buffer ​de dessin ​====
  
-Quand on crée un displayon crée des sous-buffers dont des buffers ​de dessin.+Allegro 5 introduit le concept de buffer de dessinle buffer ​de dessin ​n'est pas affiché.
  
-Toutes les opérations de dessin doivent se faire sur le buffer de dessin, qui dans la plupart des cas est l'un des sous-buffers ​du display actuel.+Quand on crée un display, on crée automatiquement un buffer de dessin. 
 + 
 +Toutes les opérations de dessin doivent se faire sur le buffer de dessin du display actuel.
  
 ==== Exemple basique ==== ==== Exemple basique ====
Ligne 175: Ligne 181:
 Détruit un objet de type bitmap. Détruit un objet de type bitmap.
  
-Nous en avons fini avec les bitmaps ​d'​Allegro 5.+==== Charger des bitmaps ​depuis le disque ====
  
-==== Example avancé ====+Voici la méthode utilisant les fonctions path d'​allegro afin de garantir un code portable
  
- FIXME chargement de bitmaps via le greffon ​**allegro-image** à écrire ici.+<code c> 
 +ALLEGRO_BITMAP ​get_resource_image(const char filename) { 
 +   ​ALLEGRO_PATH ​*path; 
 +   ​ALLEGRO_BITMAP ​*image;
  
 +   path = al_get_standard_path(ALLEGRO_RESOURCES_PATH);​
 +   ​al_append_path_component(path,​ "​images"​);​
 +   ​al_set_path_filename(path,​ filename);
 +
 +   image = al_load_bitmap(al_path_cstr(path,​ '/'​));​
 +   ​al_destroy_path(path);​
 +   ​return image;
 +}
 +</​code>​
 +
 +Dans ce cas de figure, les ressources de notre jeu sont placées dans le dossier **image** relativement à l'​exécutable.\\
 +Ce code fait pointer path sur le dossier contenant le fichier exécutable de notre jeu grâce au paramètre **ALLEGRO_RESOURCES_PATH**,​ puis ajoute le dossier **"​images"​** et enfin le nom de notre fichier au path.
 +
 +**al_path_cstr(path,​ '/'​)** permet de rendre notre path valide sur tous les OS.
 +
 +La fonction **al_load_bitmap** va chercher la fonction capable de charger l'​image en fonction de son extension (.jpg, .bmp ...), et renvoit NULL si elle ne la trouve pas ou si la fonction a échouée à charger l'​image.
 +
 +**Par défaut allegro ne gère aucun format d'​image**,​ il faut utiliser le greffon [[allegro:​addon_image|ImageIO]] afin de pouvoir charger quelques formats.
 +
 +Nous en avons fini avec les bitmaps d'​Allegro 5.
  
-[[allegro:​timers|Précédent]] << [[allegro:​start|Sommaire]] >> [[allegro:​input|Suivant]]+[[allegro:​timers|Précédent]] << [[allegro:​start#articles|Sommaire]] >> [[allegro:​input|Suivant]]
allegro/bitmaps.1323095691.txt.gz · Dernière modification: 2011/12/05 15:34 par mrhide