====== Différences ====== Ci-dessous, les différences entre deux révisions de la page.
allegro:addon_memfile [2012/01/14 04:37] mrhide |
allegro:addon_memfile [2018/03/01 11:07] (Version actuelle) mrhide Add link |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ===== Memfile ===== | + | ===== Allegro — Memfile ===== |
Cet addon permet de traiter un espace contigüe de la mémoire comme un fichier, et ainsi d'utiliser les opération d'E/S dessus. | Cet addon permet de traiter un espace contigüe de la mémoire comme un fichier, et ainsi d'utiliser les opération d'E/S dessus. | ||
Ligne 8: | Ligne 8: | ||
<code c> | <code c> | ||
+ | #include <allegro5/allegro.h> | ||
#include <allegro5/allegro_memfile.h> | #include <allegro5/allegro_memfile.h> | ||
+ | #include <allegro5/allegro_image.h> | ||
+ | #include <stdio.h> | ||
+ | |||
+ | #define SIZE 262 | ||
+ | #define SCREEN_W 128 | ||
+ | #define SCREEN_H 128 | ||
int main() { | int main() { | ||
ALLEGRO_FILE *file; | ALLEGRO_FILE *file; | ||
- | ALLEGRO_IMAGE *image; | + | ALLEGRO_BITMAP *image; |
- | + | ALLEGRO_DISPLAY *display = NULL; | |
/* Ce tableau contient une image au format png */ | /* Ce tableau contient une image au format png */ | ||
unsigned char default_img[] = { 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, | unsigned char default_img[] = { 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, | ||
Ligne 41: | Ligne 49: | ||
0x41, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, | 0x41, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, | ||
0x60, 0x82 }; | 0x60, 0x82 }; | ||
- | + | ||
- | al_init(); | + | if (!init(display)) return -1; |
- | + | ||
+ | /* on ouvre */ | ||
file = al_open_memfile(default_img, SIZE, "rw"); | file = al_open_memfile(default_img, SIZE, "rw"); | ||
if (!file) return 0; | if (!file) return 0; | ||
- | + | ||
- | /* Charge l'image convertie en BITMAP en mémoire depuis le tableau */ | + | /* Charge l'image en mémoire depuis le tableau */ |
image = al_load_bitmap_f(file, ".png"); | image = al_load_bitmap_f(file, ".png"); | ||
- | + | ||
/* On doit utiliser cette fonction lorsqu'on a plus besoin du fichier */ | /* On doit utiliser cette fonction lorsqu'on a plus besoin du fichier */ | ||
al_fclose(file); | al_fclose(file); | ||
- | + | ||
+ | |||
+ | al_draw_bitmap(image, 56,56, 0); | ||
+ | al_flip_display(); | ||
+ | |||
+ | al_rest(10.0); | ||
+ | al_destroy_bitmap(image); | ||
+ | al_destroy_display(display); | ||
+ | |||
return 0; | return 0; | ||
} | } | ||
+ | |||
+ | int init(ALLEGRO_DISPLAY *display) { | ||
+ | if(!al_init()) { | ||
+ | fprintf(stderr, "failed to initialize allegro!\n"); | ||
+ | return -1; | ||
+ | } | ||
+ | |||
+ | if (!al_init_image_addon()) { | ||
+ | fprintf(stderr, "failed to initialize allegro image IO addon!\n"); | ||
+ | return -1; | ||
+ | } | ||
+ | |||
+ | display = al_create_display(SCREEN_W, SCREEN_H); | ||
+ | if(!display) { | ||
+ | fprintf(stderr, "failed to create display!\n"); | ||
+ | return -1; | ||
+ | } | ||
+ | |||
+ | return 1; | ||
+ | } | ||
+ | |||
</code> | </code> | ||
+ | |||
+ | [[allegro:code_memfile|Ce code]] permet de créer facilement le tableau à partir d'un fichier. | ||
+ | |||
+ | [[http://liballeg.org/a5docs/trunk/memfile.html]] | ||
[[allegro:addons|Liste des greffons]] | [[allegro:addons|Liste des greffons]] |