man ggi_pixelformat (Fonctions bibliothèques) - ggi_pixelformat : LibGGI pixel format description

NAME

ggi_pixelformat : LibGGI pixel format description

SYNOPSIS

#include <ggi/ggi.h>

typedef struct { int depth; /* Number of significant bits */ int size; /* Physical size in bits */

/* * Simple and common things first : * * Usage of the mask/shift pairs: * If new_value is the _sizeof(ggi_pixel)*8bit_ value of the thing * you want to set, you do * * *pointer &= ~???_mask; // Mask out old bits * *pointer |= (new_value>>shift) & ???_mask; * * The reason to use 32 bit and "downshifting" is alignment * and extensibility. You can easily adjust to other datasizes * with a simple addition ... */ /* Simple colors: */ ggi_pixel red_mask; /* Bitmask of red bits */ int red_shift; /* Shift for red bits */

ggi_pixel green_mask; /* Bitmask of green bits */ int green_shift; /* Shift for green bits */

ggi_pixel blue_mask; /* Bitmask of blue bits */ int blue_shift; /* Shift for blue bits */

/* A few common attributes : */ ggi_pixel alpha_mask; /* Bitmask of alphachannel bits */ int alpha_shift; /* Shift for alpha bits */

ggi_pixel clut_mask; /* Bitmask of bits for the clut */ int clut_shift; /* Shift for bits for the clut*/

ggi_pixel fg_mask; /* Bitmask of foreground color */ int fg_shift; /* Shift for foreground color */

ggi_pixel bg_mask; /* Bitmask of background color */ int bg_shift; /* Shift for background color */

ggi_pixel texture_mask; /* Bitmask of the texture (for textmodes - the actual character) */ int texture_shift; /* Shift for texture */

/* * Now if this doesn't suffice you might want to parse the following * to find out what each bit does: */

uint32 bitmeaning[sizeof(ggi_pixel)*8];

uint32 flags; /* Pixelformat flags */

uint32 stdformat; /* Standard format identifier */ /* This one has only one use for the usermode application: * To quickly check, if two buffers are identical. If both * stdformats are the same and _NOT_ 0 (which means "WEIRD"), * you may use things like memcpy between them which will have * the desired effect ... */ } ggi_pixelformat;

/* Pixelformat flags */ #define GGI_PF_REVERSE_ENDIAN 0x01 #define GGI_PF_HIGHBIT_RIGHT 0x02 #define GGI_PF_HAM 0x04 #define GGI_PF_EXTENDED 0x08

DESCRIPTION

This structure describes the internal format of pixel values for a visual.

SEE ALSO