Provided by: liballegro-doc_4.2.2-3_all bug

NAME

       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(3alleg),             create_video_bitmap(3alleg),            scroll_screen(3alleg),
       request_scroll(3alleg), show_mouse(3alleg), enable_triple_buffer(3alleg),  ex3buf(3alleg),
       exaccel(3alleg), exsyscur(3alleg), exupdate(3alleg)