gfx_capabilities man page

gfx_capabilities — Bitfield describing video hardware capabilities. Allegro game programming library.

Synopsis

#include <allegro.h>

extern int gfx_capabilities;

Description

Bitfield describing the capabilities of the current graphics driver and  video hardware. This may contain combination any of the flags:

GFX_CAN_SCROLL: Indicates that the scroll_screen() function may be used with this  driver.

GFX_CAN_TRIPLE_BUFFER: Indicates that the request_scroll() and poll_scroll() functions may be  used with this driver. If this flag is not set, it is possible that  the enable_triple_buffer() function may be able to activate it.

GFX_HW_CURSOR: Indicates that a hardware mouse cursor is in use. When this flag is  set, it is safe to draw onto the screen without hiding the mouse  pointer first. Note that not every cursor graphic can be implemented  in hardware: in particular VBE/AF only supports 2-color images up to  32x32 in size, where the second color is an exact inverse of the  first. This means that Allegro may need to switch between hardware and  software cursors at any point during the execution of your program, so  you should not assume that this flag will remain constant for long  periods of time. It only tells you whether a hardware cursor is in use  at the current time, and may change whenever you hide/redisplay the  pointer.

GFX_SYSTEM_CURSOR Indicates that the mouse cursor is the default system cursor, not  Allegro's custom cursor.

GFX_HW_HLINE: Indicates that the normal opaque version of the hline() function is  implemented using a hardware accelerator. This will improve the  performance not only of hline() itself, but also of many other  functions that use it as a workhorse, for example circlefill(),  triangle(), and floodfill().

GFX_HW_HLINE_XOR: Indicates that the XOR version of the hline() function, and any other  functions that use it as a workhorse, are implemented using a hardware  accelerator.

GFX_HW_HLINE_SOLID_PATTERN: Indicates that the solid and masked pattern modes of the hline()  function, and any other functions that use it as a workhorse, are  implemented using a hardware accelerator (see note below).

GFX_HW_HLINE_COPY_PATTERN: Indicates that the copy pattern mode of the hline() function, and any  other functions that use it as a workhorse, are implemented using a  hardware accelerator (see note below).

GFX_HW_FILL: Indicates that the opaque version of the rectfill() function, the  clear_bitmap() routine, and clear_to_color(), are implemented using a hardware accelerator.

GFX_HW_FILL_XOR: Indicates that the XOR version of the rectfill() function is  implemented using a hardware accelerator.

GFX_HW_FILL_SOLID_PATTERN: Indicates that the solid and masked pattern modes of the rectfill()  function are implemented using a hardware accelerator (see note below).

GFX_HW_FILL_COPY_PATTERN: Indicates that the copy pattern mode of the rectfill() function is  implemented using a hardware accelerator (see note below).

GFX_HW_LINE: Indicates that the opaque mode line() and vline() functions are  implemented using a hardware accelerator.

GFX_HW_LINE_XOR: Indicates that the XOR version of the line() and vline() functions are  implemented using a hardware accelerator.

GFX_HW_TRIANGLE: Indicates that the opaque mode triangle() function is implemented  using a hardware accelerator.

GFX_HW_TRIANGLE_XOR: Indicates that the XOR version of the triangle() function is  implemented using a hardware accelerator.

GFX_HW_GLYPH: Indicates that monochrome character expansion (for text drawing) is  implemented using a hardware accelerator.

GFX_HW_VRAM_BLIT: Indicates that blitting from one part of the screen to another is  implemented using a hardware accelerator. If this flag is set,  blitting within the video memory will almost certainly be the fastest  possible way to display an image, so it may be worth storing some of  your more frequently used graphics in an offscreen portion of the  video memory.

GFX_HW_VRAM_BLIT_MASKED: Indicates that the masked_blit() routine is capable of a hardware  accelerated copy from one part of video memory to another, and that  draw_sprite() will use a hardware copy when given a sub-bitmap of the  screen or a video memory bitmap as the source image. If this flag is  set, copying within the video memory will almost certainly be the  fastest possible way to display an image, so it may be worth storing  some of your more frequently used sprites in an offscreen portion of  the video memory.

Warning: if this flag is not set, masked_blit() and draw_sprite() will  not work correctly when used with a video memory source image! You  must only try to use these functions to copy within the video memory  if they are supported in hardware.

GFX_HW_MEM_BLIT: Indicates that blitting from a memory bitmap onto the screen is being  accelerated in hardware.

GFX_HW_MEM_BLIT_MASKED: Indicates that the masked_blit() and draw_sprite() functions are being  accelerated in hardware when the source image is a memory bitmap and  the destination is the physical screen.

GFX_HW_SYS_TO_VRAM_BLIT: Indicates that blitting from a system bitmap onto the screen is being  accelerated in hardware. Note that some acceleration may be present  even if this flag is not set, because system bitmaps can benefit from  normal memory to screen blitting as well. This flag will only be set  if system bitmaps have further acceleration above and beyond what is  provided by GFX_HW_MEM_BLIT.

GFX_HW_SYS_TO_VRAM_BLIT_MASKED: Indicates that the masked_blit() and draw_sprite() functions are being  accelerated in hardware when the source image is a system bitmap and  the destination is the physical screen. Note that some acceleration  may be present even if this flag is not set, because system bitmaps  can benefit from normal memory to screen blitting as well. This flag  will only be set if system bitmaps have further acceleration above and  beyond what is provided by GFX_HW_MEM_BLIT_MASKED.

GFX_HW_VRAM_STRETCH_BLIT: Indicates that stretched blitting of video bitmaps onto the screen is implemented using hardware acceleration.

GFX_HW_SYS_STRETCH_BLIT: Indicates that stretched blitting of system bitmaps onto the screen is implemented using hardware acceleration.

GFX_HW_VRAM_STRETCH_BLIT_MASKED: Indicates that masked stretched blitting (including stretch_sprite) of  video bitmaps onto the screen is implemented using hardware acceleration. NOTE: some display drivers may show artifacts when this function is used. If the image does not look correct try updating your video drivers.

GFX_HW_SYS_STRETCH_BLIT_MASKED: Indicates that masked stretched blitting (including stretch_sprite) of  system bitmaps onto the screen is implemented using hardware acceleration. NOTE: some display drivers may show artefact's when this function is used. If the image does not look correct try updating your video drivers.

Note: even if the capabilities information says that patterned drawing is  supported by the hardware, it will not be possible for every size of  pattern. VBE/AF only supports patterns up to 8x8 in size, so Allegro will  fall back on the original non-accelerated drawing routines whenever you  use a pattern larger than this.

Note2: these hardware acceleration features will only take effect when  you are drawing directly onto the screen bitmap, a video memory bitmap,  or a sub-bitmap thereof. Accelerated hardware is most useful in a page  flipping or triple buffering setup, and is unlikely to make any  difference to the classic "draw onto a memory bitmap, then blit to the  screen" system.

See Also

screen(3), create_video_bitmap(3), scroll_screen(3), request_scroll(3), show_mouse(3), enable_triple_buffer(3), ex3buf(3), exaccel(3), exsyscur(3), exupdate(3)

Referenced By

blit(3), create_video_bitmap(3), disable_hardware_cursor(3), enable_hardware_cursor(3), enable_triple_buffer(3), ex3buf(3), exaccel(3), exsyscur(3), exupdate(3), request_scroll(3), request_video_bitmap(3), select_mouse_cursor(3), set_gfx_mode(3), set_mouse_cursor_bitmap(3).

version 4.4.2 Allegro manual