ggi_mode, ggi_coord, ggi_graphtype : LibGGI mode description
#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;
The mode structure describes a visual configuration given by its size and other graphic properties.
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.
The size of the visible area. This is what the user will see.
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.
TODO : Write something here.
It holds information on the type of display. libggi defines macros to construct graphtypes values or access individual field.
The number of significant bits holding color information.
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).
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
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
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.