DOKK / manpages / debian 11 / allegro4-doc / screen.3alleg4.en
screen(3alleg4) Allegro manual screen(3alleg4)

screen - Global pointer to the screen hardware video memory. Allegro game programming library.

#include <allegro.h>

extern BITMAP *screen;

Global pointer to a bitmap, sized VIRTUAL_W x VIRTUAL_H. This is created by set_gfx_mode(), and represents the hardware video memory. Only a part of this bitmap will actually be visible, sized SCREEN_W x SCREEN_H. Normally this is the top left corner of the larger virtual screen, so you can ignore the extra invisible virtual size of the bitmap if you aren't interested in hardware scrolling or page flipping. To move the visible window to other parts of the screen bitmap, call scroll_screen(). Initially the clipping rectangle will be limited to the physical screen size, so if you want to draw onto a larger virtual screen space outside this rectangle, you will need to adjust the clipping.

For example, to draw a pixel onto the screen you would write:


putpixel(screen, x, y, color);
Or to implement a double-buffered system:


/* Make a bitmap in RAM. */
BITMAP *bmp = create_bitmap(320, 200);
/* Clean the memory bitmap. */
clear_bitmap(bmp);
/* Draw onto the memory bitmap. */
putpixel(bmp, x, y, color);
/* Copy it to the screen. */
blit(bmp, screen, 0, 0, 0, 0, 320, 200);

Warning: be very careful when using this pointer at the same time as any bitmaps created by the create_video_bitmap() function (see the description of this function for more detailed information). And never try to destroy it with destroy_bitmap().

set_gfx_mode(3alleg4), is_screen_bitmap(3alleg4), create_video_bitmap(3alleg4), scroll_screen(3alleg4)

version 4.4.3 Allegro