1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
.TH ALLEGRO_PIXEL_FORMAT 3 "" "Allegro reference manual"
.SH NAME
.PP
ALLEGRO_PIXEL_FORMAT \- Allegro 5 API
.SH SYNOPSIS
.IP
.nf
\f[C]
#include\ <allegro5/allegro.h>
typedef\ enum\ ALLEGRO_PIXEL_FORMAT
\f[]
.fi
.SH DESCRIPTION
.PP
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.
.RS
.PP
\f[I]Note:\f[]
.PP
The pixel format is independent of endianness.
That is, in the above example you can always get the red component with
.IP
.nf
\f[C]
(pixel\ &\ 0x00ff0000)\ >>\ 16
\f[]
.fi
.PP
But you can \f[I]not\f[] rely on this code:
.IP
.nf
\f[C]
*(pixel\ +\ 2)
\f[]
.fi
.PP
It will return the red component on little endian systems, but the green
component on big endian systems.
.RE
.PP
Also note that Allegro\[aq]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).
.PP
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.
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_ANY \- Let the driver choose a format.
This is the default format at program start.
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_ANY_NO_ALPHA \- Let the driver choose a format
without alpha.
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_ANY_WITH_ALPHA \- Let the driver choose a format
with alpha.
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_ANY_15_NO_ALPHA \- Let the driver choose a 15 bit
format without alpha.
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_ANY_16_NO_ALPHA \- Let the driver choose a 16 bit
format without alpha.
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_ANY_16_WITH_ALPHA \- Let the driver choose a 16 bit
format with alpha.
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_ANY_24_NO_ALPHA \- Let the driver choose a 24 bit
format without alpha.
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_ANY_32_NO_ALPHA \- Let the driver choose a 32 bit
format without alpha.
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_ANY_32_WITH_ALPHA \- Let the driver choose a 32 bit
format with alpha.
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_ARGB_8888 \- 32 bit
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_RGBA_8888 \- 32 bit
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_ARGB_4444 \- 16 bit
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_RGB_888 \- 24 bit
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_RGB_565 \- 16 bit
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_RGB_555 \- 15 bit
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_RGBA_5551 \- 16 bit
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_ARGB_1555 \- 16 bit
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_ABGR_8888 \- 32 bit
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_XBGR_8888 \- 32 bit
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_BGR_888 \- 24 bit
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_BGR_565 \- 16 bit
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_BGR_555 \- 15 bit
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_RGBX_8888 \- 32 bit
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_XRGB_8888 \- 32 bit
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_ABGR_F32 \- 128 bit
.IP \[bu] 2
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.
.IP \[bu] 2
ALLEGRO_PIXEL_FORMAT_RGBA_4444 \- 16bit
.SH SEE ALSO
.PP
al_set_new_bitmap_format(3), al_get_bitmap_format(3)
|