1 #ifndef __al_included_allegro5_color_h 2 #define __al_included_allegro5_color_h 3 4 #include "allegro5/base.h" 5 6 #ifdef __cplusplus 7 extern "C" { 8 #endif 9 10 11 /* Type: ALLEGRO_COLOR 12 */ 13 typedef struct ALLEGRO_COLOR ALLEGRO_COLOR; 14 15 struct ALLEGRO_COLOR 16 { 17 float r, g, b, a; 18 }; 19 20 21 /* Enum: ALLEGRO_PIXEL_FORMAT 22 */ 23 typedef enum ALLEGRO_PIXEL_FORMAT 24 { 25 ALLEGRO_PIXEL_FORMAT_ANY = 0, 26 ALLEGRO_PIXEL_FORMAT_ANY_NO_ALPHA = 1, 27 ALLEGRO_PIXEL_FORMAT_ANY_WITH_ALPHA = 2, 28 ALLEGRO_PIXEL_FORMAT_ANY_15_NO_ALPHA = 3, 29 ALLEGRO_PIXEL_FORMAT_ANY_16_NO_ALPHA = 4, 30 ALLEGRO_PIXEL_FORMAT_ANY_16_WITH_ALPHA = 5, 31 ALLEGRO_PIXEL_FORMAT_ANY_24_NO_ALPHA = 6, 32 ALLEGRO_PIXEL_FORMAT_ANY_32_NO_ALPHA = 7, 33 ALLEGRO_PIXEL_FORMAT_ANY_32_WITH_ALPHA = 8, 34 ALLEGRO_PIXEL_FORMAT_ARGB_8888 = 9, 35 ALLEGRO_PIXEL_FORMAT_RGBA_8888 = 10, 36 ALLEGRO_PIXEL_FORMAT_ARGB_4444 = 11, 37 ALLEGRO_PIXEL_FORMAT_RGB_888 = 12, /* 24 bit format */ 38 ALLEGRO_PIXEL_FORMAT_RGB_565 = 13, 39 ALLEGRO_PIXEL_FORMAT_RGB_555 = 14, 40 ALLEGRO_PIXEL_FORMAT_RGBA_5551 = 15, 41 ALLEGRO_PIXEL_FORMAT_ARGB_1555 = 16, 42 ALLEGRO_PIXEL_FORMAT_ABGR_8888 = 17, 43 ALLEGRO_PIXEL_FORMAT_XBGR_8888 = 18, 44 ALLEGRO_PIXEL_FORMAT_BGR_888 = 19, /* 24 bit format */ 45 ALLEGRO_PIXEL_FORMAT_BGR_565 = 20, 46 ALLEGRO_PIXEL_FORMAT_BGR_555 = 21, 47 ALLEGRO_PIXEL_FORMAT_RGBX_8888 = 22, 48 ALLEGRO_PIXEL_FORMAT_XRGB_8888 = 23, 49 ALLEGRO_PIXEL_FORMAT_ABGR_F32 = 24, 50 ALLEGRO_PIXEL_FORMAT_ABGR_8888_LE = 25, 51 ALLEGRO_PIXEL_FORMAT_RGBA_4444 = 26, 52 ALLEGRO_PIXEL_FORMAT_SINGLE_CHANNEL_8 = 27, 53 ALLEGRO_PIXEL_FORMAT_COMPRESSED_RGBA_DXT1 = 28, 54 ALLEGRO_PIXEL_FORMAT_COMPRESSED_RGBA_DXT3 = 29, 55 ALLEGRO_PIXEL_FORMAT_COMPRESSED_RGBA_DXT5 = 30, 56 ALLEGRO_NUM_PIXEL_FORMATS 57 } ALLEGRO_PIXEL_FORMAT; 58 59 60 /* Pixel mapping */ 61 AL_FUNC(ALLEGRO_COLOR, al_map_rgb, (unsigned char r, unsigned char g, unsigned char b)); 62 AL_FUNC(ALLEGRO_COLOR, al_map_rgba, (unsigned char r, unsigned char g, unsigned char b, unsigned char a)); 63 AL_FUNC(ALLEGRO_COLOR, al_map_rgb_f, (float r, float g, float b)); 64 AL_FUNC(ALLEGRO_COLOR, al_map_rgba_f, (float r, float g, float b, float a)); 65 AL_FUNC(ALLEGRO_COLOR, al_premul_rgba, 66 (unsigned char r, unsigned char g, unsigned char b, unsigned char a)); 67 AL_FUNC(ALLEGRO_COLOR, al_premul_rgba_f, 68 (float r, float g, float b, float a)); 69 70 /* Pixel unmapping */ 71 AL_FUNC(void, al_unmap_rgb, (ALLEGRO_COLOR color, unsigned char *r, unsigned char *g, unsigned char *b)); 72 AL_FUNC(void, al_unmap_rgba, (ALLEGRO_COLOR color, unsigned char *r, unsigned char *g, unsigned char *b, unsigned char *a)); 73 AL_FUNC(void, al_unmap_rgb_f, (ALLEGRO_COLOR color, float *r, float *g, float *b)); 74 AL_FUNC(void, al_unmap_rgba_f, (ALLEGRO_COLOR color, float *r, float *g, float *b, float *a)); 75 76 /* Pixel formats */ 77 AL_FUNC(int, al_get_pixel_size, (int format)); 78 AL_FUNC(int, al_get_pixel_format_bits, (int format)); 79 AL_FUNC(int, al_get_pixel_block_size, (int format)); 80 AL_FUNC(int, al_get_pixel_block_width, (int format)); 81 AL_FUNC(int, al_get_pixel_block_height, (int format)); 82 83 #ifdef __cplusplus 84 } 85 #endif 86 87 #endif 88 89 /* vim: set ts=8 sts=3 sw=3 et: */ 90