ggi_mode(3)

NAME
ggi_mode, ggi_coord, ggi_graphtype : LibGGI mode description

SYNOPSIS
#include <ggi/ggi.h>
typedef struct { int16_t x, y; } ggi_coord;
typedef uint32_t ggi_graphtype;
typedef struct {
      int32_t          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 capabilities (double-buffering, triple-buffering,...). See libggi frame-related functions (ggi{s,g}et{Read,Write,Display}Frame) for information on working with multiple frames.

visible
    The size of the visible area in pixels. This is what the user will see.

virt
    The virtual size of the visual in pixels. 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.

SEE ALSO
ggiCheckMode(3), ggiSetMode(3)