• Viernes 15 de Noviembre de 2024, 16:47

Autor Tema:  Problema create_video_bitmap  (Leído 1880 veces)

Guardiola

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Problema create_video_bitmap
« en: Jueves 19 de Marzo de 2009, 20:54 »
0
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++
  1.          
  2.  /* Creamos buffer y memorias de video*/
  3.  
  4.       buffer = create_bitmap(SCREEN_W,SCREEN_H);
  5.  
  6.       page1 = create_video_bitmap(SCREEN_W, SCREEN_H);
  7.  
  8.       page2 = create_video_bitmap(SCREEN_W, SCREEN_H);
  9.  
  10.      
  11.  
  12.       /* Comprobamos que se ha creado las memorias de video*/
  13.  
  14.       if ((!page1) || (!page2) || (!buffer))
  15.  
  16.       {
  17.  
  18.             set_gfx_mode(GFX_TEXT, 0, 0, 0, 0);
  19.  
  20.             allegro_message("No se pudieron crear las paginas de memorian");
  21.  
  22.             return 1;
  23.  
  24.       }
  25.  
  26.      
  27.  
  28.       while(!key[KEY_ENTER]);
  29.  
  30.      
  31.  
  32.       do
  33.  
  34.       {
  35.  
  36.             clear_bitmap(buffer);
  37.  
  38.  
  39.  
  40.  
  41.  
  42.             s_mapa = load_bmp("Graficos/mapa1.bmp", NULL);
  43.  
  44.             s_pj = load_bmp("Graficos/pj.bmp", NULL);
  45.  
  46.             if(!s_mapa)
  47.  
  48.             {
  49.  
  50.                 set_gfx_mode(GFX_TEXT,0,0,0,0);
  51.  
  52.                 allegro_message("Error. No se pudo leer la imagen");
  53.  
  54.                 return 1;
  55.  
  56.             }
  57.  
  58.             if(!s_pj)
  59.  
  60.             {
  61.  
  62.                 set_gfx_mode(GFX_TEXT,0,0,0,0);
  63.  
  64.                 allegro_message("Error. No se pudo leer la imagen");
  65.  
  66.                 return 1;
  67.  
  68.             }
  69.  
  70.             draw_sprite(buffer, s_mapa, 0, 0);
  71.  
  72.             draw_sprite(buffer, s_pj, pj_X*Cuadro, pj_Y*Cuadro);
  73.  
  74.  
  75.  
  76.             show_video_bitmap(buffer);
  77.  
  78.             if (buffer == page1)
  79.  
  80.                         buffer = page2;
  81.  
  82.             else
  83.  
  84.                         buffer = page1;
  85.  
  86.                        
  87.  
  88.  
  89.       }while(aux !=0);
  90.  
  91.      
  92.  
  93.       destroy_bitmap(page1);
  94.  
  95.       destroy_bitmap(page2);
  96.  
  97.       destroy_bitmap(buffer);
  98.  

El fallo se produce aqui:
Código: C++
  1.       buffer = create_bitmap(SCREEN_W,SCREEN_H);
  2.  
  3.       page1 = create_video_bitmap(SCREEN_W, SCREEN_H);
  4.  
  5.       page2 = create_video_bitmap(SCREEN_W, SCREEN_H);
  6.  

Nunca llega a crear las memorias de video, por lo que siempre salta esto:
Código: C++
  1.       if ((!page1) || (!page2) || (!buffer))
  2.  
  3.       {
  4.  
  5.             set_gfx_mode(GFX_TEXT, 0, 0, 0, 0);
  6.  
  7.             allegro_message("No se pudieron crear las paginas de memorian");n saludo y gra
  8.  
  9.             return 1;
  10.  
  11.       }
  12.  

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

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Problema create_video_bitmap
« Respuesta #1 en: Lunes 23 de Marzo de 2009, 10:30 »
0
Cita de: "Guardiola"
Esataba trabajando con Allegro enn WinXP, pero decidi pasarme a linux, ya que me gustra programar mucho mas aqui.
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);
¿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.

Salud