LibGGI mode description
Name
ggi_mode, ggi_coord, ggi_graphtype : LibGGI mode description
Synopsis
#include <ggi/ggi.h>
typedef struct { sint16 x, y; } ggi_coord;
typedef uint32 ggi_graphtype;
typedef struct {
      sint32          frames;
      ggi_coord       visible;
      ggi_coord       virt;
      ggi_coord       size;
      ggi_graphtype   graphtype;
      ggi_coord       dpp;
} ggi_mode;Description
The mode structure describes a visual configuration given by its size and other graphic properties.
Structure Members
- frames
 The number of frames. Some displays have multi-buffer capabilites (double-buffering, triple-buffering...). See libggi frame-related functions for information on working with multiple frames.
- visible
 The size of the visible area. This is what the user will see.
- virt
 The virtual size of the visual. It can be larger (but not smaller) than the visible area, in which case only a part of it is displayed. It is useful for scrolling or backing up portions of screen efficiently. See ggi[Set|Get]Origin functions for more.
- size
 The size of the visible area in mm.
- graphtype
 It holds information on the type of display. libggi defines macros to construct graphtypes values or access individual field.
- depth ( access via GT_DEPTH(gt), GT_SETDEPTH(gt,x) )
 The number of significant bits holding color information.
- size ( access via GT_SIZE(gt), GT_SETSIZE(gt,x) )
 The actual size (in bits) of a pixel. For instance, on a 32 bits X server the pixel size is 32 but the depth is only 24 (8bits RGB channels, 8 unused).
- scheme ( access via GT_SCHEME(gt), GT_SETSCHEME(gt,x) )
 The following schemes are available :
- GT_TEXT : text mode only
 - GT_TRUECOLOR : true color mode
 - GT_GREYSCALE : pixels represent level of gray
 - GT_PALETTE : pixels are entries in a CLUT (Color Look-Up Table)
 - GT_STATIC_PALETTE
 - GT_SUBSAMPLE_YUV
 - GT_SUBSAMPLE_U_YCRBR
 - GT_SUBSAMPLE_S_YCRBR
 - GT_NIL
 
- subscheme ( access via GT_SUBSCHEME(gt) , GT_SETSUBSCHEME(gt,x) )
 One of:
- GT_SUB_REVERSE_ENDIAN
 - GT_SUB_HIGHBIT_RIGHT
 - GT_SUB_PACKED_GETPUT
 
Graphtypes can be constructed directly or via the GT_CONSTRUCT(depth,scheme,size) macro. The following common graphtypes are defined :
- GT_TEXT16
 - GT_TEXT32
 - GT_1BIT
 - GT_2BIT
 - GT_4BIT
 - GT_8BIT
 - GT_15BIT
 - GT_16BIT
 - GT_24BIT
 - GT_32BIT
 - GT_AUTO
 - GT_INVALID
 
- dpp
 It stands for dot-per-pixel.
When filling a mode structure for setting a visual, any field can be assigned GGI_AUTO (GT_AUTO for graphtype) if a specific value isn't required.