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
105 SDL_PACKEDLAYOUT_NONE,
106 SDL_PACKEDLAYOUT_332,
107 SDL_PACKEDLAYOUT_4444,
108 SDL_PACKEDLAYOUT_1555,
109 SDL_PACKEDLAYOUT_5551,
110 SDL_PACKEDLAYOUT_565,
111 SDL_PACKEDLAYOUT_8888,
112 SDL_PACKEDLAYOUT_2101010,
113 SDL_PACKEDLAYOUT_1010102
116 #define SDL_DEFINE_PIXELFOURCC(A, B, C, D) SDL_FOURCC(A, B, C, D)
118 #define SDL_DEFINE_PIXELFORMAT(type, order, layout, bits, bytes) \
119 ((1 << 28) | ((type) << 24) | ((order) << 20) | ((layout) << 16) | \
120 ((bits) << 8) | ((bytes) << 0))
122 #define SDL_PIXELFLAG(X) (((X) >> 28) & 0x0F)
123 #define SDL_PIXELTYPE(X) (((X) >> 24) & 0x0F)
124 #define SDL_PIXELORDER(X) (((X) >> 20) & 0x0F)
125 #define SDL_PIXELLAYOUT(X) (((X) >> 16) & 0x0F)
126 #define SDL_BITSPERPIXEL(X) (((X) >> 8) & 0xFF)
127 #define SDL_BYTESPERPIXEL(X) \
128 (SDL_ISPIXELFORMAT_FOURCC(X) ? \
129 ((((X) == SDL_PIXELFORMAT_YUY2) || \
130 ((X) == SDL_PIXELFORMAT_UYVY) || \
131 ((X) == SDL_PIXELFORMAT_YVYU)) ? 2 : 1) : (((X) >> 0) & 0xFF))
133 #define SDL_ISPIXELFORMAT_INDEXED(format) \
134 (!SDL_ISPIXELFORMAT_FOURCC(format) && \
135 ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX1) || \
136 (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX4) || \
137 (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX8)))
139 #define SDL_ISPIXELFORMAT_PACKED(format) \
140 (!SDL_ISPIXELFORMAT_FOURCC(format) && \
141 ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_PACKED8) || \
142 (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_PACKED16) || \
143 (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_PACKED32)))
145 #define SDL_ISPIXELFORMAT_ARRAY(format) \
146 (!SDL_ISPIXELFORMAT_FOURCC(format) && \
147 ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYU8) || \
148 (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYU16) || \
149 (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYU32) || \
150 (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYF16) || \
151 (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYF32)))
153 #define SDL_ISPIXELFORMAT_ALPHA(format) \
154 ((SDL_ISPIXELFORMAT_PACKED(format) && \
155 ((SDL_PIXELORDER(format) == SDL_PACKEDORDER_ARGB) || \
156 (SDL_PIXELORDER(format) == SDL_PACKEDORDER_RGBA) || \
157 (SDL_PIXELORDER(format) == SDL_PACKEDORDER_ABGR) || \
158 (SDL_PIXELORDER(format) == SDL_PACKEDORDER_BGRA))) || \
159 (SDL_ISPIXELFORMAT_ARRAY(format) && \
160 ((SDL_PIXELORDER(format) == SDL_ARRAYORDER_ARGB) || \
161 (SDL_PIXELORDER(format) == SDL_ARRAYORDER_RGBA) || \
162 (SDL_PIXELORDER(format) == SDL_ARRAYORDER_ABGR) || \
163 (SDL_PIXELORDER(format) == SDL_ARRAYORDER_BGRA))))
166 #define SDL_ISPIXELFORMAT_FOURCC(format) \
167 ((format) && (SDL_PIXELFLAG(format) != 1))
172 SDL_PIXELFORMAT_UNKNOWN,
173 SDL_PIXELFORMAT_INDEX1LSB =
174 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX1, SDL_BITMAPORDER_4321, 0,
176 SDL_PIXELFORMAT_INDEX1MSB =
177 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX1, SDL_BITMAPORDER_1234, 0,
179 SDL_PIXELFORMAT_INDEX4LSB =
180 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX4, SDL_BITMAPORDER_4321, 0,
182 SDL_PIXELFORMAT_INDEX4MSB =
183 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX4, SDL_BITMAPORDER_1234, 0,
185 SDL_PIXELFORMAT_INDEX8 =
186 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX8, 0, 0, 8, 1),
187 SDL_PIXELFORMAT_RGB332 =
188 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED8, SDL_PACKEDORDER_XRGB,
189 SDL_PACKEDLAYOUT_332, 8, 1),
190 SDL_PIXELFORMAT_RGB444 =
191 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB,
192 SDL_PACKEDLAYOUT_4444, 12, 2),
193 SDL_PIXELFORMAT_RGB555 =
194 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB,
195 SDL_PACKEDLAYOUT_1555, 15, 2),
196 SDL_PIXELFORMAT_BGR555 =
197 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR,
198 SDL_PACKEDLAYOUT_1555, 15, 2),
199 SDL_PIXELFORMAT_ARGB4444 =
200 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB,
201 SDL_PACKEDLAYOUT_4444, 16, 2),
202 SDL_PIXELFORMAT_RGBA4444 =
203 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA,
204 SDL_PACKEDLAYOUT_4444, 16, 2),
205 SDL_PIXELFORMAT_ABGR4444 =
206 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR,
207 SDL_PACKEDLAYOUT_4444, 16, 2),
208 SDL_PIXELFORMAT_BGRA4444 =
209 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_BGRA,
210 SDL_PACKEDLAYOUT_4444, 16, 2),
211 SDL_PIXELFORMAT_ARGB1555 =
212 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB,
213 SDL_PACKEDLAYOUT_1555, 16, 2),
214 SDL_PIXELFORMAT_RGBA5551 =
215 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA,
216 SDL_PACKEDLAYOUT_5551, 16, 2),
217 SDL_PIXELFORMAT_ABGR1555 =
218 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR,
219 SDL_PACKEDLAYOUT_1555, 16, 2),
220 SDL_PIXELFORMAT_BGRA5551 =
221 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_BGRA,
222 SDL_PACKEDLAYOUT_5551, 16, 2),
223 SDL_PIXELFORMAT_RGB565 =
224 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB,
225 SDL_PACKEDLAYOUT_565, 16, 2),
226 SDL_PIXELFORMAT_BGR565 =
227 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR,
228 SDL_PACKEDLAYOUT_565, 16, 2),
229 SDL_PIXELFORMAT_RGB24 =
230 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_RGB, 0,
232 SDL_PIXELFORMAT_BGR24 =
233 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_BGR, 0,
235 SDL_PIXELFORMAT_RGB888 =
236 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_XRGB,
237 SDL_PACKEDLAYOUT_8888, 24, 4),
238 SDL_PIXELFORMAT_RGBX8888 =
239 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_RGBX,
240 SDL_PACKEDLAYOUT_8888, 24, 4),
241 SDL_PIXELFORMAT_BGR888 =
242 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_XBGR,
243 SDL_PACKEDLAYOUT_8888, 24, 4),
244 SDL_PIXELFORMAT_BGRX8888 =
245 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_BGRX,
246 SDL_PACKEDLAYOUT_8888, 24, 4),
247 SDL_PIXELFORMAT_ARGB8888 =
248 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB,
249 SDL_PACKEDLAYOUT_8888, 32, 4),
250 SDL_PIXELFORMAT_RGBA8888 =
251 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_RGBA,
252 SDL_PACKEDLAYOUT_8888, 32, 4),
253 SDL_PIXELFORMAT_ABGR8888 =
254 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ABGR,
255 SDL_PACKEDLAYOUT_8888, 32, 4),
256 SDL_PIXELFORMAT_BGRA8888 =
257 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_BGRA,
258 SDL_PACKEDLAYOUT_8888, 32, 4),
259 SDL_PIXELFORMAT_ARGB2101010 =
260 SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB,
261 SDL_PACKEDLAYOUT_2101010, 32, 4),
264 SDL_DEFINE_PIXELFOURCC(
'Y',
'V',
'1',
'2'),
266 SDL_DEFINE_PIXELFOURCC(
'I',
'Y',
'U',
'V'),
268 SDL_DEFINE_PIXELFOURCC(
'Y',
'U',
'Y',
'2'),
270 SDL_DEFINE_PIXELFOURCC(
'U',
'Y',
'V',
'Y'),
272 SDL_DEFINE_PIXELFOURCC(
'Y',
'V',
'Y',
'U'),
274 SDL_DEFINE_PIXELFOURCC(
'N',
'V',
'1',
'2'),
276 SDL_DEFINE_PIXELFOURCC(
'N',
'V',
'2',
'1')
286 #define SDL_Colour SDL_Color
395 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:275
Definition: SDL_pixels.h:288
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:265
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:279
Definition: SDL_pixels.h:263
DECLSPEC void SDLCALL SDL_FreeFormat(SDL_PixelFormat *format)
Free an SDL_PixelFormat structure.
Definition: SDL_pixels.h:271
Definition: SDL_pixels.h:273
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:267
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:269
DECLSPEC SDL_PixelFormat *SDLCALL SDL_AllocFormat(Uint32 pixel_format)
Create an SDL_PixelFormat structure from a pixel format enum.