DragonFly On-Line Manual Pages
ALLEGRO_PIXEL_FORMAT(3) ALLEGRO_PIXEL_FORMAT(3)
NAME
ALLEGRO_PIXEL_FORMAT - Allegro 5 API
SYNOPSIS
#include <allegro5/allegro.h>
typedef enum ALLEGRO_PIXEL_FORMAT
DESCRIPTION
Pixel formats. Each pixel format specifies the exact size and bit
layout of a pixel in memory. Components are specified from high bits
to low bits, so for example a fully opaque red pixel in ARGB_8888
format is 0xFFFF0000.
Note:
The pixel format is independent of endianness. That is, in the
above example you can always get the red component with
(pixel & 0x00ff0000) >> 16
But you can not rely on this code:
*(pixel + 2)
It will return the red component on little endian systems, but
the green component on big endian systems.
Also note that Allegro's naming is different from OpenGL naming here,
where a format of GL_RGBA8 merely defines the component order and the
exact layout including endianness treatment is specified separately.
Usually GL_RGBA8 will correspond to ALLEGRO_PIXEL_ABGR_8888 though on
little endian systems, so care must be taken (note the reversal of RGBA
<-> ABGR).
The only exception to this ALLEGRO_PIXEL_FORMAT_ABGR_8888_LE which will
always have the components as 4 bytes corresponding to red, green, blue
and alpha, in this order, independent of the endianness.
o ALLEGRO_PIXEL_FORMAT_ANY - Let the driver choose a format. This is
the default format at program start.
o ALLEGRO_PIXEL_FORMAT_ANY_NO_ALPHA - Let the driver choose a format
without alpha.
o ALLEGRO_PIXEL_FORMAT_ANY_WITH_ALPHA - Let the driver choose a format
with alpha.
o ALLEGRO_PIXEL_FORMAT_ANY_15_NO_ALPHA - Let the driver choose a 15 bit
format without alpha.
o ALLEGRO_PIXEL_FORMAT_ANY_16_NO_ALPHA - Let the driver choose a 16 bit
format without alpha.
o ALLEGRO_PIXEL_FORMAT_ANY_16_WITH_ALPHA - Let the driver choose a 16
bit format with alpha.
o ALLEGRO_PIXEL_FORMAT_ANY_24_NO_ALPHA - Let the driver choose a 24 bit
format without alpha.
o ALLEGRO_PIXEL_FORMAT_ANY_32_NO_ALPHA - Let the driver choose a 32 bit
format without alpha.
o ALLEGRO_PIXEL_FORMAT_ANY_32_WITH_ALPHA - Let the driver choose a 32
bit format with alpha.
o ALLEGRO_PIXEL_FORMAT_ARGB_8888 - 32 bit
o ALLEGRO_PIXEL_FORMAT_RGBA_8888 - 32 bit
o ALLEGRO_PIXEL_FORMAT_ARGB_4444 - 16 bit
o ALLEGRO_PIXEL_FORMAT_RGB_888 - 24 bit
o ALLEGRO_PIXEL_FORMAT_RGB_565 - 16 bit
o ALLEGRO_PIXEL_FORMAT_RGB_555 - 15 bit
o ALLEGRO_PIXEL_FORMAT_RGBA_5551 - 16 bit
o ALLEGRO_PIXEL_FORMAT_ARGB_1555 - 16 bit
o ALLEGRO_PIXEL_FORMAT_ABGR_8888 - 32 bit
o ALLEGRO_PIXEL_FORMAT_XBGR_8888 - 32 bit
o ALLEGRO_PIXEL_FORMAT_BGR_888 - 24 bit
o ALLEGRO_PIXEL_FORMAT_BGR_565 - 16 bit
o ALLEGRO_PIXEL_FORMAT_BGR_555 - 15 bit
o ALLEGRO_PIXEL_FORMAT_RGBX_8888 - 32 bit
o ALLEGRO_PIXEL_FORMAT_XRGB_8888 - 32 bit
o ALLEGRO_PIXEL_FORMAT_ABGR_F32 - 128 bit
o ALLEGRO_PIXEL_FORMAT_ABGR_8888_LE - Like the version without _LE, but
the component order is guaranteed to be red, green, blue, alpha.
This only makes a difference on big endian systems, on little endian
it is just an alias.
o ALLEGRO_PIXEL_FORMAT_RGBA_4444 - 16bit
SEE ALSO
al_set_new_bitmap_format(3), al_get_bitmap_format(3)
Allegro reference manual ALLEGRO_PIXEL_FORMAT(3)