Provided by: allegro4-doc_4.4.2-13_all bug

NAME

       set_gfx_mode - Sets a graphic video mode. Allegro game programming library.

SYNOPSIS

       #include <allegro.h>

       int set_gfx_mode(int card, int w, int h, int v_w, int v_h);

DESCRIPTION

       Switches into graphics mode. The card parameter should usually be one of the Allegro magic
       drivers (read introduction of chapter "Graphics  modes")  or  see  the  platform  specific
       documentation  for  a  list  of the available drivers. The w and h parameters specify what
       screen resolution you want.  The color depth of the  graphic  mode  has  to  be  specified
       before calling this function with set_color_depth().

       The  v_w  and  v_h  parameters specify the minimum virtual screen size, in case you need a
       large virtual screen for hardware scrolling or page flipping. You should set them to  zero
       if you don't care about the virtual screen size.

       When  you  call  set_gfx_mode(),  the v_w and v_h parameters represent the minimum size of
       virtual screen that is acceptable for your program. The range of possible sizes is usually
       very restricted, and Allegro may end up creating a virtual screen much larger than the one
       you request.  Allowed sizes are driver dependent and some drivers  do  not  allow  virtual
       screens  that  are  larger  than the visible screen at all: don't assume that whatever you
       pass will always work.

       In mode-X the virtual width can be any multiple of eight greater  than  or  equal  to  the
       physical screen width, and the virtual height will be set accordingly (the VGA has 256k of
       vram, so the virtual height will be 256*1024/virtual_width).

       Currently, using a big virtual screen for page flipping is considered bad practice.  There
       are  platforms which don't support virtual screens bigger than the physical screen but can
       create different video pages to flip back and forth. This means that,  if  you  want  page
       flipping  and  aren't going to use hardware scrolling, you should call set_gfx_mode() with
       (0,0) as the virtual  screen  size  and  later  create  the  different  video  pages  with
       create_video_bitmap().  Otherwise your program will be limited to the platforms supporting
       hardware scrolling.

       After you select a graphics mode, the physical and virtual screen  sizes  can  be  checked
       with the macros SCREEN_W, SCREEN_H, VIRTUAL_W, and VIRTUAL_H.

RETURN VALUE

       Returns  zero on success. On failure returns a negative number and stores a description of
       the problem in allegro_error.

SEE ALSO

       set_color_depth(3alleg4),         request_refresh_rate(3alleg4),          screen(3alleg4),
       gfx_capabilities(3alleg4),      allegro_error(3alleg4),      create_video_bitmap(3alleg4),
       get_desktop_resolution(3alleg4), SCREEN_W(3alleg4), SCREEN_H(3alleg4), VIRTUAL_W(3alleg4),
       VIRTUAL_H(3alleg4)