====== Différences ====== Ci-dessous, les différences entre deux révisions de la page.
allegro:bitmaps [2011/12/14 16:49] mrhide [Example avancé] |
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 display, on crée des sous-buffers dont des buffers de dessin. | + | Allegro 5 introduit le concept de buffer de dessin, le 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 174: | Ligne 180: | ||
<code c> al_destroy_bitmap(bouncer);</code> | <code c> al_destroy_bitmap(bouncer);</code> | ||
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 ==== | ==== Charger des bitmaps depuis le disque ==== | ||
Ligne 183: | Ligne 187: | ||
<code c> | <code c> | ||
ALLEGRO_BITMAP * get_resource_image(const char * filename) { | ALLEGRO_BITMAP * get_resource_image(const char * filename) { | ||
- | ALLEGRO_PATH *path; | + | ALLEGRO_PATH *path; |
- | ALLEGRO_BITMAP *image; | + | ALLEGRO_BITMAP *image; |
- | path = al_get_standard_path(ALLEGRO_RESOURCES_PATH); | + | path = al_get_standard_path(ALLEGRO_RESOURCES_PATH); |
- | al_append_path_component(path, "images"); | + | al_append_path_component(path, "images"); |
- | al_set_path_filename(path, filename); | + | al_set_path_filename(path, filename); |
- | image = al_load_bitmap(al_path_cstr(path, '/')); | + | image = al_load_bitmap(al_path_cstr(path, '/')); |
- | al_destroy_path(path); | + | al_destroy_path(path); |
- | return image; | + | return image; |
} | } | ||
</code> | </code> | ||
Ligne 205: | Ligne 209: | ||
**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. | **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. | ||
- | [[allegro:timers|Précédent]] << [[allegro:start|Sommaire]] >> [[allegro:input|Suivant]] | + | Nous en avons fini avec les bitmaps d'Allegro 5. |
+ | |||
+ | [[allegro:timers|Précédent]] << [[allegro:start#articles|Sommaire]] >> [[allegro:input|Suivant]] |