void draw_in_bitmap( BITMAP * bmp, int tipo_grafico, color, modo, region, x0, y0, x1, y1 )


Descripción:

Se trata de una función genérica capaz de representar varias primitivas gráficas en pantalla (como líneas, cajas y círculos). Se deben indicar los siguientes parámetros:

bmp - (BITMAP *) de ALLEGRO en el que se va ha dibujar la primitiva gráfica.

tipo_grafico - Tipo de primitiva, dentro de los siguientes:

 d_line           // Línea recta
 d_rectangle      // Rectángulo
 d_fill_rectangle // Rectángulo
 d_ellipse        // Elipse
 d_fill_ellipse   // Elipse rellena

color - Color de tinta para la primitiva (de 0 a 255, como un color de la paleta).

modo - Modo de dibujado: 0 opaco y 1 transparente.

región - Número de región (ventana dentro de la pantalla) en la que se debe pintar la primitiva; normalmente este valor será 0 para poder imprimir la primitiva en cualquier posición de la pantalla. Para definir una región se debe utilizar la función define_region().

x0, y0 - Punto inicial de la recta, o la esquina superior izquierda de la caja que contiene al rectángulo o elipse.

x1, y1 - Punto final de la recta, o la esquina inferior derecha de la caja que contiene al rectángulo o elipse.


int contador,
    tipo,
    color,
    opacidad, x, y, x2, y2;

MAIN_PROGRAM_CDIV
BEGIN_PROGRAM 

    //Definimos el modo grafico
    set_gfx(GFX_AUTODETECT_WINDOWED);

    //Definimos la resolución
    set_mode(m320x200);

    write(0,0,0,0,"Pulse ESC para terminar ...");

    do{
        for( contador = 0; contador < 10; contador++){
            tipo = rand(1,5);
            color = rand(0,255);
            opacidad = rand(0,1);
            x = rand(0,319);
            y = rand(0,199);
            x2 = rand(0,319);
            y2 = rand(0,199);

            // Pinta una primitiva gráfica

            draw_in_bitmap(screen, tipo, color, opacidad, 0, x, y, x2, y2);
        }

        FRAME;
    }LOOP;

END_PROGRAM

Este programa ejemplo representa en pantalla 10 primitivas gráficas cuyas características son seleccionadas al azar mediante la función rand(), y tras dar una imagen con FRAME.

El proceso se repite hasta que se detecta la tecla ESC.


Ver: draw() - move_draw() - delete_draw() - draw_z