48#define SDL_ALPHA_OPAQUE 255
57#define SDL_ALPHA_OPAQUE_FLOAT 1.0f
66#define SDL_ALPHA_TRANSPARENT 0
75#define SDL_ALPHA_TRANSPARENT_FLOAT 0.0f
144#define SDL_DEFINE_PIXELFOURCC(A, B, C, D) SDL_FOURCC(A, B, C, D)
146#define SDL_DEFINE_PIXELFORMAT(type, order, layout, bits, bytes) \
147 ((1 << 28) | ((type) << 24) | ((order) << 20) | ((layout) << 16) | \
148 ((bits) << 8) | ((bytes) << 0))
150#define SDL_PIXELFLAG(X) (((X) >> 28) & 0x0F)
151#define SDL_PIXELTYPE(X) (((X) >> 24) & 0x0F)
152#define SDL_PIXELORDER(X) (((X) >> 20) & 0x0F)
153#define SDL_PIXELLAYOUT(X) (((X) >> 16) & 0x0F)
154#define SDL_BITSPERPIXEL(X) \
155 (SDL_ISPIXELFORMAT_FOURCC(X) ? 0 : (((X) >> 8) & 0xFF))
156#define SDL_BYTESPERPIXEL(X) \
157 (SDL_ISPIXELFORMAT_FOURCC(X) ? \
158 ((((X) == SDL_PIXELFORMAT_YUY2) || \
159 ((X) == SDL_PIXELFORMAT_UYVY) || \
160 ((X) == SDL_PIXELFORMAT_YVYU) || \
161 ((X) == SDL_PIXELFORMAT_P010)) ? 2 : 1) : (((X) >> 0) & 0xFF))
163#define SDL_ISPIXELFORMAT_INDEXED(format) \
164 (!SDL_ISPIXELFORMAT_FOURCC(format) && \
165 ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX1) || \
166 (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX2) || \
167 (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX4) || \
168 (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX8)))
170#define SDL_ISPIXELFORMAT_PACKED(format) \
171 (!SDL_ISPIXELFORMAT_FOURCC(format) && \
172 ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_PACKED8) || \
173 (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_PACKED16) || \
174 (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_PACKED32)))
176#define SDL_ISPIXELFORMAT_ARRAY(format) \
177 (!SDL_ISPIXELFORMAT_FOURCC(format) && \
178 ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYU8) || \
179 (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYU16) || \
180 (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYU32) || \
181 (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYF16) || \
182 (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYF32)))
184#define SDL_ISPIXELFORMAT_ALPHA(format) \
185 ((SDL_ISPIXELFORMAT_PACKED(format) && \
186 ((SDL_PIXELORDER(format) == SDL_PACKEDORDER_ARGB) || \
187 (SDL_PIXELORDER(format) == SDL_PACKEDORDER_RGBA) || \
188 (SDL_PIXELORDER(format) == SDL_PACKEDORDER_ABGR) || \
189 (SDL_PIXELORDER(format) == SDL_PACKEDORDER_BGRA))))
191#define SDL_ISPIXELFORMAT_10BIT(format) \
192 (!SDL_ISPIXELFORMAT_FOURCC(format) && \
193 ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_PACKED32) && \
194 (SDL_PIXELLAYOUT(format) == SDL_PACKEDLAYOUT_2101010)))
196#define SDL_ISPIXELFORMAT_FLOAT(format) \
197 (!SDL_ISPIXELFORMAT_FOURCC(format) && \
198 ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYF16) || \
199 (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYF32)))
202#define SDL_ISPIXELFORMAT_FOURCC(format) \
203 ((format) && (SDL_PIXELFLAG(format) != 1))
377#if SDL_BYTEORDER == SDL_BIG_ENDIAN
378#define SDL_PIXELFORMAT_RGBA32 SDL_PIXELFORMAT_RGBA8888
379#define SDL_PIXELFORMAT_ARGB32 SDL_PIXELFORMAT_ARGB8888
380#define SDL_PIXELFORMAT_BGRA32 SDL_PIXELFORMAT_BGRA8888
381#define SDL_PIXELFORMAT_ABGR32 SDL_PIXELFORMAT_ABGR8888
382#define SDL_PIXELFORMAT_RGBX32 SDL_PIXELFORMAT_RGBX8888
383#define SDL_PIXELFORMAT_XRGB32 SDL_PIXELFORMAT_XRGB8888
384#define SDL_PIXELFORMAT_BGRX32 SDL_PIXELFORMAT_BGRX8888
385#define SDL_PIXELFORMAT_XBGR32 SDL_PIXELFORMAT_XBGR8888
387#define SDL_PIXELFORMAT_RGBA32 SDL_PIXELFORMAT_ABGR8888
388#define SDL_PIXELFORMAT_ARGB32 SDL_PIXELFORMAT_BGRA8888
389#define SDL_PIXELFORMAT_BGRA32 SDL_PIXELFORMAT_ARGB8888
390#define SDL_PIXELFORMAT_ABGR32 SDL_PIXELFORMAT_RGBA8888
391#define SDL_PIXELFORMAT_RGBX32 SDL_PIXELFORMAT_XBGR8888
392#define SDL_PIXELFORMAT_XRGB32 SDL_PIXELFORMAT_BGRX8888
393#define SDL_PIXELFORMAT_BGRX32 SDL_PIXELFORMAT_XRGB8888
394#define SDL_PIXELFORMAT_XBGR32 SDL_PIXELFORMAT_RGBX8888
541#define SDL_DEFINE_COLORSPACE(type, range, primaries, transfer, matrix, chroma) \
542 (((Uint32)(type) << 28) | ((Uint32)(range) << 24) | ((Uint32)(chroma) << 20) | \
543 ((Uint32)(primaries) << 10) | ((Uint32)(transfer) << 5) | ((Uint32)(matrix) << 0))
545#define SDL_COLORSPACETYPE(X) (SDL_ColorType)(((X) >> 28) & 0x0F)
546#define SDL_COLORSPACERANGE(X) (SDL_ColorRange)(((X) >> 24) & 0x0F)
547#define SDL_COLORSPACECHROMA(X) (SDL_ChromaLocation)(((X) >> 20) & 0x0F)
548#define SDL_COLORSPACEPRIMARIES(X) (SDL_ColorPrimaries)(((X) >> 10) & 0x1F)
549#define SDL_COLORSPACETRANSFER(X) (SDL_TransferCharacteristics)(((X) >> 5) & 0x1F)
550#define SDL_COLORSPACEMATRIX(X) (SDL_MatrixCoefficients)((X) & 0x1F)
552#define SDL_ISCOLORSPACE_MATRIX_BT601(X) (SDL_COLORSPACEMATRIX(X) == SDL_MATRIX_COEFFICIENTS_BT601 || SDL_COLORSPACEMATRIX(X) == SDL_MATRIX_COEFFICIENTS_BT470BG)
553#define SDL_ISCOLORSPACE_MATRIX_BT709(X) (SDL_COLORSPACEMATRIX(X) == SDL_MATRIX_COEFFICIENTS_BT709)
554#define SDL_ISCOLORSPACE_MATRIX_BT2020_NCL(X) (SDL_COLORSPACEMATRIX(X) == SDL_MATRIX_COEFFICIENTS_BT2020_NCL)
555#define SDL_ISCOLORSPACE_LIMITED_RANGE(X) (SDL_COLORSPACERANGE(X) != SDL_COLOR_RANGE_FULL)
556#define SDL_ISCOLORSPACE_FULL_RANGE(X) (SDL_COLORSPACERANGE(X) == SDL_COLOR_RANGE_FULL)
664#define SDL_COLORSPACE_RGB_DEFAULT SDL_COLORSPACE_SRGB
667#define SDL_COLORSPACE_YUV_DEFAULT SDL_COLORSPACE_JPEG
@ SDL_MATRIX_COEFFICIENTS_BT709
@ SDL_MATRIX_COEFFICIENTS_BT2020_CL
@ SDL_MATRIX_COEFFICIENTS_BT601
@ SDL_MATRIX_COEFFICIENTS_BT2020_NCL
@ SDL_MATRIX_COEFFICIENTS_SMPTE240
@ SDL_MATRIX_COEFFICIENTS_YCGCO
@ SDL_MATRIX_COEFFICIENTS_CHROMA_DERIVED_NCL
@ SDL_MATRIX_COEFFICIENTS_CHROMA_DERIVED_CL
@ SDL_MATRIX_COEFFICIENTS_UNSPECIFIED
@ SDL_MATRIX_COEFFICIENTS_CUSTOM
@ SDL_MATRIX_COEFFICIENTS_ICTCP
@ SDL_MATRIX_COEFFICIENTS_IDENTITY
@ SDL_MATRIX_COEFFICIENTS_FCC
@ SDL_MATRIX_COEFFICIENTS_BT470BG
@ SDL_MATRIX_COEFFICIENTS_SMPTE2085
@ SDL_COLOR_RANGE_LIMITED
@ SDL_COLOR_RANGE_UNKNOWN
@ SDL_COLOR_PRIMARIES_SMPTE431
@ SDL_COLOR_PRIMARIES_CUSTOM
@ SDL_COLOR_PRIMARIES_EBU3213
@ SDL_COLOR_PRIMARIES_GENERIC_FILM
@ SDL_COLOR_PRIMARIES_BT601
@ SDL_COLOR_PRIMARIES_UNSPECIFIED
@ SDL_COLOR_PRIMARIES_SMPTE240
@ SDL_COLOR_PRIMARIES_XYZ
@ SDL_COLOR_PRIMARIES_UNKNOWN
@ SDL_COLOR_PRIMARIES_SMPTE432
@ SDL_COLOR_PRIMARIES_BT2020
@ SDL_COLOR_PRIMARIES_BT470BG
@ SDL_COLOR_PRIMARIES_BT709
@ SDL_COLOR_PRIMARIES_BT470M
Uint32 SDL_MapRGB(const SDL_PixelFormatDetails *format, const SDL_Palette *palette, Uint8 r, Uint8 g, Uint8 b)
@ SDL_PACKEDLAYOUT_1010102
@ SDL_PACKEDLAYOUT_2101010
SDL_Palette * SDL_CreatePalette(int ncolors)
@ SDL_CHROMA_LOCATION_NONE
@ SDL_CHROMA_LOCATION_TOPLEFT
@ SDL_CHROMA_LOCATION_CENTER
@ SDL_CHROMA_LOCATION_LEFT
Uint32 SDL_MapRGBA(const SDL_PixelFormatDetails *format, const SDL_Palette *palette, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
void SDL_DestroyPalette(SDL_Palette *palette)
SDL_TransferCharacteristics
@ SDL_TRANSFER_CHARACTERISTICS_BT709
@ SDL_TRANSFER_CHARACTERISTICS_BT1361
@ SDL_TRANSFER_CHARACTERISTICS_CUSTOM
@ SDL_TRANSFER_CHARACTERISTICS_HLG
@ SDL_TRANSFER_CHARACTERISTICS_LOG100_SQRT10
@ SDL_TRANSFER_CHARACTERISTICS_UNKNOWN
@ SDL_TRANSFER_CHARACTERISTICS_BT601
@ SDL_TRANSFER_CHARACTERISTICS_IEC61966
@ SDL_TRANSFER_CHARACTERISTICS_UNSPECIFIED
@ SDL_TRANSFER_CHARACTERISTICS_SMPTE428
@ SDL_TRANSFER_CHARACTERISTICS_LOG100
@ SDL_TRANSFER_CHARACTERISTICS_GAMMA28
@ SDL_TRANSFER_CHARACTERISTICS_SMPTE240
@ SDL_TRANSFER_CHARACTERISTICS_BT2020_10BIT
@ SDL_TRANSFER_CHARACTERISTICS_SRGB
@ SDL_TRANSFER_CHARACTERISTICS_PQ
@ SDL_TRANSFER_CHARACTERISTICS_LINEAR
@ SDL_TRANSFER_CHARACTERISTICS_BT2020_12BIT
@ SDL_TRANSFER_CHARACTERISTICS_GAMMA22
const char * SDL_GetPixelFormatName(SDL_PixelFormat format)
@ SDL_COLORSPACE_BT2020_LIMITED
@ SDL_COLORSPACE_BT601_LIMITED
@ SDL_COLORSPACE_BT709_FULL
@ SDL_COLORSPACE_BT601_FULL
@ SDL_COLORSPACE_BT2020_FULL
@ SDL_COLORSPACE_BT709_LIMITED
@ SDL_COLORSPACE_SRGB_LINEAR
@ SDL_PIXELFORMAT_BGR48_FLOAT
@ SDL_PIXELFORMAT_RGBA128_FLOAT
@ SDL_PIXELFORMAT_EXTERNAL_OES
@ SDL_PIXELFORMAT_INDEX2LSB
@ SDL_PIXELFORMAT_INDEX1LSB
@ SDL_PIXELFORMAT_RGB96_FLOAT
@ SDL_PIXELFORMAT_ABGR4444
@ SDL_PIXELFORMAT_BGRA4444
@ SDL_PIXELFORMAT_INDEX4MSB
@ SDL_PIXELFORMAT_ABGR2101010
@ SDL_PIXELFORMAT_XBGR2101010
@ SDL_PIXELFORMAT_RGBA64_FLOAT
@ SDL_PIXELFORMAT_INDEX2MSB
@ SDL_PIXELFORMAT_BGRA64_FLOAT
@ SDL_PIXELFORMAT_RGBA8888
@ SDL_PIXELFORMAT_RGBA5551
@ SDL_PIXELFORMAT_ARGB1555
@ SDL_PIXELFORMAT_XBGR4444
@ SDL_PIXELFORMAT_XRGB2101010
@ SDL_PIXELFORMAT_XRGB8888
@ SDL_PIXELFORMAT_BGRX8888
@ SDL_PIXELFORMAT_ABGR8888
@ SDL_PIXELFORMAT_BGRA8888
@ SDL_PIXELFORMAT_ABGR128_FLOAT
@ SDL_PIXELFORMAT_ABGR1555
@ SDL_PIXELFORMAT_ARGB8888
@ SDL_PIXELFORMAT_ABGR64_FLOAT
@ SDL_PIXELFORMAT_XBGR1555
@ SDL_PIXELFORMAT_XRGB4444
@ SDL_PIXELFORMAT_BGR96_FLOAT
@ SDL_PIXELFORMAT_ARGB4444
@ SDL_PIXELFORMAT_RGB48_FLOAT
@ SDL_PIXELFORMAT_BGRA128_FLOAT
@ SDL_PIXELFORMAT_ARGB64_FLOAT
@ SDL_PIXELFORMAT_INDEX1MSB
@ SDL_PIXELFORMAT_INDEX4LSB
@ SDL_PIXELFORMAT_RGBX8888
@ SDL_PIXELFORMAT_BGRA5551
@ SDL_PIXELFORMAT_ARGB128_FLOAT
@ SDL_PIXELFORMAT_XRGB1555
@ SDL_PIXELFORMAT_XBGR8888
@ SDL_PIXELFORMAT_ARGB2101010
@ SDL_PIXELFORMAT_UNKNOWN
@ SDL_PIXELFORMAT_RGBA4444
void SDL_GetRGB(Uint32 pixel, const SDL_PixelFormatDetails *format, const SDL_Palette *palette, Uint8 *r, Uint8 *g, Uint8 *b)
const SDL_PixelFormatDetails * SDL_GetPixelFormatDetails(SDL_PixelFormat format)
SDL_PixelFormat SDL_GetPixelFormatForMasks(int bpp, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask)
SDL_bool SDL_SetPaletteColors(SDL_Palette *palette, const SDL_Color *colors, int firstcolor, int ncolors)
void SDL_GetRGBA(Uint32 pixel, const SDL_PixelFormatDetails *format, const SDL_Palette *palette, Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a)
SDL_bool SDL_GetMasksForPixelFormat(SDL_PixelFormat format, int *bpp, Uint32 *Rmask, Uint32 *Gmask, Uint32 *Bmask, Uint32 *Amask)