LibGGI mode description

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