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.
???
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 : |
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 |
????
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.