Outils pour utilisateurs

Outils du site


allegro:addon_memfile

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

Lien vers cette vue comparative

allegro:addon_memfile [2012/01/21 23:21]
mrhide [Exemple]
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>​
  
-Ce code permet de créer facilement le tableau à partir d'un fichier.+[[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]]
allegro/addon_memfile.1327184475.txt.gz · Dernière modification: 2012/01/21 23:21 par mrhide