Programación Específica > Allegro

 Problema create_video_bitmap

(1/1)

Guardiola:
Hola

Esataba trabajando con Allegro enn WinXP, pero decidi pasarme a linux, ya que me gustra programar mucho mas aqui.

Pero me a surgido un problema en este codigo:

--- Código: C++ ---           /* Creamos buffer y memorias de video*/       buffer = create_bitmap(SCREEN_W,SCREEN_H);       page1 = create_video_bitmap(SCREEN_W, SCREEN_H);       page2 = create_video_bitmap(SCREEN_W, SCREEN_H);              /* Comprobamos que se ha creado las memorias de video*/       if ((!page1) || (!page2) || (!buffer))        {             set_gfx_mode(GFX_TEXT, 0, 0, 0, 0);             allegro_message("No se pudieron crear las paginas de memorian");             return 1;       }              while(!key[KEY_ENTER]);              do       {             clear_bitmap(buffer);                 s_mapa = load_bmp("Graficos/mapa1.bmp", NULL);             s_pj = load_bmp("Graficos/pj.bmp", NULL);             if(!s_mapa)             {                 set_gfx_mode(GFX_TEXT,0,0,0,0);                 allegro_message("Error. No se pudo leer la imagen");                 return 1;             }             if(!s_pj)             {                 set_gfx_mode(GFX_TEXT,0,0,0,0);                 allegro_message("Error. No se pudo leer la imagen");                 return 1;             }             draw_sprite(buffer, s_mapa, 0, 0);             draw_sprite(buffer, s_pj, pj_X*Cuadro, pj_Y*Cuadro);               show_video_bitmap(buffer);             if (buffer == page1)                         buffer = page2;             else                         buffer = page1;                                 }while(aux !=0);              destroy_bitmap(page1);       destroy_bitmap(page2);       destroy_bitmap(buffer); 
El fallo se produce aqui:

--- Código: C++ ---      buffer = create_bitmap(SCREEN_W,SCREEN_H);       page1 = create_video_bitmap(SCREEN_W, SCREEN_H);       page2 = create_video_bitmap(SCREEN_W, SCREEN_H); 
Nunca llega a crear las memorias de video, por lo que siempre salta esto:

--- Código: C++ ---      if ((!page1) || (!page2) || (!buffer))        {             set_gfx_mode(GFX_TEXT, 0, 0, 0, 0);             allegro_message("No se pudieron crear las paginas de memorian");n saludo y gra             return 1;       } 
En windows si que me funciona bien, pero en linux no, quisiera saber por que no me deja crear las memorias de video (pense que era por no tener los drivers de la grafica, pero si que los tengo actualizados a la ultima version).
Que alguien me ayude por favor  :unsure:

Un saludo y gracias.

m0skit0:

--- Cita de: "Guardiola" ---Esataba trabajando con Allegro enn WinXP, pero decidi pasarme a linux, ya que me gustra programar mucho mas aqui.
--- Fin de la cita ---
Cosa que es lógica  ^_^


--- Cita de: "Guardiola" ---El fallo se produce aqui:
buffer = create_bitmap(SCREEN_W,SCREEN_H);
page1 = create_video_bitmap(SCREEN_W, SCREEN_H);
page2 = create_video_bitmap(SCREEN_W, SCREEN_H);
--- Fin de la cita ---
¿En qué línea concretamente? ¿Qué valores te devuelve en page1 y page2?

Mira también lo que dice la documentación:


--- Citar ---Warning: video memory bitmaps are usually allocated from the same space as the screen bitmap, so they may overlap with it; it is therefore not a good idea to use the global screen at the same time as any surfaces returned by this function.
--- Fin de la cita ---

Salud

Navegación

[0] Índice de Mensajes

Ir a la versión completa