ggi_mode(3) LibGGI mode description

Other Alias

ggi_coord, ggi_graphtype

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.