void set_user_blit( void (*fnc_blit) (BITMAP *) )


Descripción:

Función que reemplaza o redefine el ("bliter" o volcado de pantalla) de CDIV pudiéndose a adaptar a las necesidades del usuario. Esta función puede ser utilizada entre otras muchas formas para definir filtros en tiempo real, escalado de pantalla, etc.

Esta función requiere conocimientos de ALLEGRO, ya que requiere llamadas a dicha librería.


void user_stretch_blit(BITMAP * buffer)
{
 stretch_blit(buffer, screen, 0, 0, buffer->w, buffer->h, 0, 0, screen->w/2, screen->h/2 );
}

MAIN_PROGRAM_CDIV

PRIVATE
 int fichero1;

BEGIN_PROGRAM

 set_gfx(GFX_AUTODETECT_WINDOWED);
 set_mode(m640x480);
 set_user_blit(user_stretch_blit);

 fichero1 = load_fpg("../help.fpg");

 mouse.graph = 200;

 put_screen_tiled(fichero1, 1);

 write(0,10,10,0, "Pulse la barra espaciadora para desactivarlo.");
 write_int(0, 10, 30, 0, &mouse.x);
 write_int(0, 10, 40, 0, &mouse.y);

 LOOP{

  if( key(_space) )
   set_user_blit(NULL);

  FRAME;
 }

END_PROGRAM

En el ejemplo se pone un fondo de pantalla y un texto explicativo.

En la iteración del bucle principal, si se pulsa la barra espaciadora, se desactivará el ("bliter" o volcado de pantalla) nuevo activándose el de CDIV.

Importante: Si no se consigue inicializar un modo gráfico, esto puede llevar a errores, tenga especial cuidado al llamar a esta función.


Ver: set_mode() - set_virtual_mode()