45 #define SDL_ALPHA_OPAQUE 255
46 #define SDL_ALPHA_TRANSPARENT 0
52 SDL_PIXELTYPE_UNKNOWN,
56 SDL_PIXELTYPE_PACKED8,
57 SDL_PIXELTYPE_PACKED16,
58 SDL_PIXELTYPE_PACKED32,
59 SDL_PIXELTYPE_ARRAYU8,
60 SDL_PIXELTYPE_ARRAYU16,
61 SDL_PIXELTYPE_ARRAYU32,
62 SDL_PIXELTYPE_ARRAYF16,
63 SDL_PIXELTYPE_ARRAYF32
103 SDL_PACKEDLAYOUT_NONE,
104 SDL_PACKEDLAYOUT_332,
105 SDL_PACKEDLAYOUT_4444,
106 SDL_PACKEDLAYOUT_1555,
107 SDL_PACKEDLAYOUT_5551,
108 SDL_PACKEDLAYOUT_565,
109 SDL_PACKEDLAYOUT_8888,
110 SDL_PACKEDLAYOUT_2101010,
111 SDL_PACKEDLAYOUT_1010102
114 #define SDL_DEFINE_PIXELFOURCC(A, B, C, D) SDL_FOURCC(A, B, C, D)
116 #define SDL_DEFINE_PIXELFORMAT(type, order, layout, bits, bytes) \
117 ((1 << 28) | ((type) << 24) | ((order) << 20) | ((layout) << 16) | \
118 ((bits) << 8) | ((bytes) << 0))
120 #define SDL_PIXELFLAG(X) (((X) >> 28) & 0x0F)
121 #define SDL_PIXELTYPE(X) (((X) >> 24) & 0x0F)
122 #define SDL_PIXELORDER(X) (((X) >> 20) & 0x0F)
123 #define SDL_PIXELLAYOUT(X) (((X) >> 16) & 0x0F)
124 #define SDL_BITSPERPIXEL(X) (((X) >> 8) & 0xFF)
125 #define SDL_BYTESPERPIXEL(X) \
126 (SDL_ISPIXELFORMAT_FOURCC(X) ? \
127 ((((X) == SDL_PIXELFORMAT_YUY2) || \
128 ((X) == SDL_PIXELFORMAT_UYVY) || \
129 ((X) == SDL_PIXELFORMAT_YVYU)) ? 2 : 1) : (((X) >> 0) & 0xFF))
131 #define SDL_ISPIXELFORMAT_INDEXED(format) \
132 (!SDL_ISPIXELFORMAT_FOURCC(format) && \
133 ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX1) || \
134 (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX4) || \
135 (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX8)))
137 #define SDL_ISPIXELFORMAT_ALPHA(format) \
138 (!SDL_ISPIXELFORMAT_FOURCC(format) && \
139 ((SDL_PIXELORDER(format) == SDL_PACKEDORDER_ARGB) || \
140 (SDL_PIXELORDER(format) == SDL_PACKEDORDER_RGBA) || \
141 (SDL_PIXELORDER(format) == SDL_PACKEDORDER_ABGR) || \
142 (SDL_PIXELORDER(format) == SDL_PACKEDORDER_BGRA)))
145 #define SDL_ISPIXELFORMAT_FOURCC(format) \
146 ((format) && (SDL_PIXELFLAG(format) != 1))
151 SDL_PIXELFORMAT_UNKNOWN,
152 SDL_PIXELFORMAT_INDEX1LSB =
153 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX1, SDL_BITMAPORDER_4321, 0,
155 SDL_PIXELFORMAT_INDEX1MSB =
156 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX1, SDL_BITMAPORDER_1234, 0,
158 SDL_PIXELFORMAT_INDEX4LSB =
159 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX4, SDL_BITMAPORDER_4321, 0,
161 SDL_PIXELFORMAT_INDEX4MSB =
162 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX4, SDL_BITMAPORDER_1234, 0,
164 SDL_PIXELFORMAT_INDEX8 =
165 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX8, 0, 0, 8, 1),
166 SDL_PIXELFORMAT_RGB332 =
167 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED8, SDL_PACKEDORDER_XRGB,
168 SDL_PACKEDLAYOUT_332, 8, 1),
169 SDL_PIXELFORMAT_RGB444 =
170 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB,
171 SDL_PACKEDLAYOUT_4444, 12, 2),
172 SDL_PIXELFORMAT_RGB555 =
173 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB,
174 SDL_PACKEDLAYOUT_1555, 15, 2),
175 SDL_PIXELFORMAT_BGR555 =
176 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR,
177 SDL_PACKEDLAYOUT_1555, 15, 2),
178 SDL_PIXELFORMAT_ARGB4444 =
179 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB,
180 SDL_PACKEDLAYOUT_4444, 16, 2),
181 SDL_PIXELFORMAT_RGBA4444 =
182 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA,
183 SDL_PACKEDLAYOUT_4444, 16, 2),
184 SDL_PIXELFORMAT_ABGR4444 =
185 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR,
186 SDL_PACKEDLAYOUT_4444, 16, 2),
187 SDL_PIXELFORMAT_BGRA4444 =
188 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_BGRA,
189 SDL_PACKEDLAYOUT_4444, 16, 2),
190 SDL_PIXELFORMAT_ARGB1555 =
191 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB,
192 SDL_PACKEDLAYOUT_1555, 16, 2),
193 SDL_PIXELFORMAT_RGBA5551 =
194 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA,
195 SDL_PACKEDLAYOUT_5551, 16, 2),
196 SDL_PIXELFORMAT_ABGR1555 =
197 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR,
198 SDL_PACKEDLAYOUT_1555, 16, 2),
199 SDL_PIXELFORMAT_BGRA5551 =
200 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_BGRA,
201 SDL_PACKEDLAYOUT_5551, 16, 2),
202 SDL_PIXELFORMAT_RGB565 =
203 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB,
204 SDL_PACKEDLAYOUT_565, 16, 2),
205 SDL_PIXELFORMAT_BGR565 =
206 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR,
207 SDL_PACKEDLAYOUT_565, 16, 2),
208 SDL_PIXELFORMAT_RGB24 =
209 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_RGB, 0,
211 SDL_PIXELFORMAT_BGR24 =
212 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_BGR, 0,
214 SDL_PIXELFORMAT_RGB888 =
215 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_XRGB,
216 SDL_PACKEDLAYOUT_8888, 24, 4),
217 SDL_PIXELFORMAT_RGBX8888 =
218 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_RGBX,
219 SDL_PACKEDLAYOUT_8888, 24, 4),
220 SDL_PIXELFORMAT_BGR888 =
221 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_XBGR,
222 SDL_PACKEDLAYOUT_8888, 24, 4),
223 SDL_PIXELFORMAT_BGRX8888 =
224 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_BGRX,
225 SDL_PACKEDLAYOUT_8888, 24, 4),
226 SDL_PIXELFORMAT_ARGB8888 =
227 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB,
228 SDL_PACKEDLAYOUT_8888, 32, 4),
229 SDL_PIXELFORMAT_RGBA8888 =
230 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_RGBA,
231 SDL_PACKEDLAYOUT_8888, 32, 4),
232 SDL_PIXELFORMAT_ABGR8888 =
233 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ABGR,
234 SDL_PACKEDLAYOUT_8888, 32, 4),
235 SDL_PIXELFORMAT_BGRA8888 =
236 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_BGRA,
237 SDL_PACKEDLAYOUT_8888, 32, 4),
238 SDL_PIXELFORMAT_ARGB2101010 =
239 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB,
240 SDL_PACKEDLAYOUT_2101010, 32, 4),
243 SDL_DEFINE_PIXELFOURCC(
'Y',
'V',
'1',
'2'),
245 SDL_DEFINE_PIXELFOURCC(
'I',
'Y',
'U',
'V'),
247 SDL_DEFINE_PIXELFOURCC(
'Y',
'U',
'Y',
'2'),
249 SDL_DEFINE_PIXELFOURCC(
'U',
'Y',
'V',
'Y'),
251 SDL_DEFINE_PIXELFOURCC(
'Y',
'V',
'Y',
'U')
261 #define SDL_Colour SDL_Color
370 int firstcolor,
int ncolors);
DECLSPEC void SDLCALL SDL_CalculateGammaRamp(float gamma, Uint16 *ramp)
Calculate a 256 entry gamma ramp for a gamma value.
uint8_t Uint8
An unsigned 8-bit integer type.
Definition: SDL_stdinc.h:139
DECLSPEC int SDLCALL SDL_SetPixelFormatPalette(SDL_PixelFormat *format, SDL_Palette *palette)
Set the palette for a pixel format structure.
uint32_t Uint32
An unsigned 32-bit integer type.
Definition: SDL_stdinc.h:155
DECLSPEC SDL_Palette *SDLCALL SDL_AllocPalette(int ncolors)
Create a palette structure with the specified number of color entries.
DECLSPEC SDL_bool SDLCALL SDL_PixelFormatEnumToMasks(Uint32 format, int *bpp, Uint32 *Rmask, Uint32 *Gmask, Uint32 *Bmask, Uint32 *Amask)
Convert one of the enumerated pixel formats to a bpp and RGBA masks.
uint16_t Uint16
An unsigned 16-bit integer type.
Definition: SDL_stdinc.h:147
DECLSPEC const char *SDLCALL SDL_GetPixelFormatName(Uint32 format)
Get the human readable name of a pixel format.
DECLSPEC void SDLCALL SDL_GetRGBA(Uint32 pixel, const SDL_PixelFormat *format, Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a)
Get the RGBA components from a pixel of the specified format.
Definition: SDL_pixels.h:263
DECLSPEC void SDLCALL SDL_FreePalette(SDL_Palette *palette)
Free a palette created with SDL_AllocPalette().
DECLSPEC int SDLCALL SDL_SetPaletteColors(SDL_Palette *palette, const SDL_Color *colors, int firstcolor, int ncolors)
Set a range of colors in a palette.
Definition: SDL_pixels.h:244
DECLSPEC void SDLCALL SDL_GetRGB(Uint32 pixel, const SDL_PixelFormat *format, Uint8 *r, Uint8 *g, Uint8 *b)
Get the RGB components from a pixel of the specified format.
DECLSPEC Uint32 SDLCALL SDL_MasksToPixelFormatEnum(int bpp, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask)
Convert a bpp and RGBA masks to an enumerated pixel format.
Definition: SDL_pixels.h:254
Definition: SDL_pixels.h:242
DECLSPEC void SDLCALL SDL_FreeFormat(SDL_PixelFormat *format)
Free an SDL_PixelFormat structure.
Definition: SDL_pixels.h:250
DECLSPEC Uint32 SDLCALL SDL_MapRGBA(const SDL_PixelFormat *format, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Maps an RGBA quadruple to a pixel value for a given pixel format.
Definition: SDL_pixels.h:246
DECLSPEC Uint32 SDLCALL SDL_MapRGB(const SDL_PixelFormat *format, Uint8 r, Uint8 g, Uint8 b)
Maps an RGB triple to an opaque pixel value for a given pixel format.
struct SDL_PixelFormat SDL_PixelFormat
Definition: SDL_pixels.h:248
DECLSPEC SDL_PixelFormat *SDLCALL SDL_AllocFormat(Uint32 pixel_format)
Create an SDL_PixelFormat structure from a pixel format enum.