= SDL_PixelFormatEnum = An enumeration of pixel formats. Manual link: Defined in [https://github.com/libsdl-org/SDL/blob/main/include/SDL3/SDL_pixels.h SDL_pixels.h], but apps should ''only'' '#include '! == Values == === Pixel Format Macros === {| |SDL_PIXELTYPE(format) |the type of the pixel format; see [[#type|Remarks]] for details |- |SDL_PIXELORDER(format) |the ordering of channels or bits in the pixel format; see [[#order|Remarks]] for details |- |SDL_PIXELLAYOUT(format) |the channel bit pattern of the pixel format; see [[#layout|Remarks]] for details |- |SDL_BITSPERPIXEL(format) |the number of bits of color information in the pixel format |- |SDL_BYTESPERPIXEL(format) |the number of bytes used to represent a pixel |- |SDL_ISPIXELFORMAT_INDEXED(format) |true for pixel formats that have a palette |- |SDL_ISPIXELFORMAT_ALPHA(format) |true for pixel formats that have an alpha channel |- |SDL_ISPIXELFORMAT_FOURCC(format) |true for pixel formats representing unique formats, for example YUV formats |} === Pixel Format Values === {| |SDL_PIXELFORMAT_UNKNOWN | |- |SDL_PIXELFORMAT_INDEX1LSB | |- |SDL_PIXELFORMAT_INDEX1MSB | |- |SDL_PIXELFORMAT_INDEX4LSB | |- |SDL_PIXELFORMAT_INDEX4MSB | |- |SDL_PIXELFORMAT_INDEX8 | |- |SDL_PIXELFORMAT_RGB332 | |- |SDL_PIXELFORMAT_RGB444 | |- |SDL_PIXELFORMAT_RGB555 | |- |SDL_PIXELFORMAT_BGR555 | |- |SDL_PIXELFORMAT_ARGB4444 | |- |SDL_PIXELFORMAT_RGBA4444 | |- |SDL_PIXELFORMAT_ABGR4444 | |- |SDL_PIXELFORMAT_BGRA4444 | |- |SDL_PIXELFORMAT_ARGB1555 | |- |SDL_PIXELFORMAT_RGBA5551 | |- |SDL_PIXELFORMAT_ABGR1555 | |- |SDL_PIXELFORMAT_BGRA5551 | |- |SDL_PIXELFORMAT_RGB565 | |- |SDL_PIXELFORMAT_BGR565 | |- |SDL_PIXELFORMAT_RGB24 | |- |SDL_PIXELFORMAT_BGR24 | |- |SDL_PIXELFORMAT_RGB888 | |- |SDL_PIXELFORMAT_RGBX8888 | |- |SDL_PIXELFORMAT_BGR888 | |- |SDL_PIXELFORMAT_BGRX8888 | |- |SDL_PIXELFORMAT_ARGB8888 | |- |SDL_PIXELFORMAT_RGBA8888 | |- |SDL_PIXELFORMAT_ABGR8888 | |- |SDL_PIXELFORMAT_BGRA8888 | |- |SDL_PIXELFORMAT_ARGB2101010 | |- |SDL_PIXELFORMAT_RGBA32 |alias for RGBA byte array of color data, for the current platform (>= SDL 2.0.5) |- |SDL_PIXELFORMAT_ARGB32 |alias for ARGB byte array of color data, for the current platform (>= SDL 2.0.5) |- |SDL_PIXELFORMAT_BGRA32 |alias for BGRA byte array of color data, for the current platform (>= SDL 2.0.5) |- |SDL_PIXELFORMAT_ABGR32 |alias for ABGR byte array of color data, for the current platform (>= SDL 2.0.5) |- |SDL_PIXELFORMAT_YV12 |planar mode: Y + V + U (3 planes) |- |SDL_PIXELFORMAT_IYUV |planar mode: Y + U + V (3 planes) |- |SDL_PIXELFORMAT_YUY2 |packed mode: Y0+U0+Y1+V0 (1 plane) |- |SDL_PIXELFORMAT_UYVY |packed mode: U0+Y0+V0+Y1 (1 plane) |- |SDL_PIXELFORMAT_YVYU |packed mode: Y0+V0+Y1+U0 (1 plane) |- |SDL_PIXELFORMAT_NV12 |planar mode: Y + U/V interleaved (2 planes) (>= SDL 2.0.4) |- |SDL_PIXELFORMAT_NV21 |planar mode: Y + V/U interleaved (2 planes) (>= SDL 2.0.4) |} == Remarks == The pixel type is one of the following values: {| |SDL_PIXELTYPE_UNKNOWN |- |SDL_PIXELTYPE_INDEX1 |- |SDL_PIXELTYPE_INDEX4 |- |SDL_PIXELTYPE_INDEX8 |- |SDL_PIXELTYPE_PACKED8 |- |SDL_PIXELTYPE_PACKED16 |- |SDL_PIXELTYPE_PACKED32 |- |SDL_PIXELTYPE_ARRAYU8 |- |SDL_PIXELTYPE_ARRAYU16 |- |SDL_PIXELTYPE_ARRAYU32 |- |SDL_PIXELTYPE_ARRAYF16 |- |SDL_PIXELTYPE_ARRAYF32 |} Depending on the pixel type there are three different types of orderings - bitmapped, packed, or array. {| |'''Bitmap pixel order''' (high bit -> low bit) |- |SDL_BITMAPORDER_NONE |- |SDL_BITMAPORDER_4321 |- |SDL_BITMAPORDER_1234 |- |'''Packed component order''' (high bit -> low bit) |- |SDL_PACKEDORDER_NONE |- |SDL_PACKEDORDER_XRGB |- |SDL_PACKEDORDER_RGBX |- |SDL_PACKEDORDER_ARGB |- |SDL_PACKEDORDER_RGBA |- |SDL_PACKEDORDER_XBGR |- |SDL_PACKEDORDER_BGRX |- |SDL_PACKEDORDER_ABGR |- |SDL_PACKEDORDER_BGRA |- |'''Array component order''' (low byte -> high byte) |- |SDL_ARRAYORDER_NONE |- |SDL_ARRAYORDER_RGB |- |SDL_ARRAYORDER_RGBA |- |SDL_ARRAYORDER_ARGB |- |SDL_ARRAYORDER_BGR |- |SDL_ARRAYORDER_BGRA |- |SDL_ARRAYORDER_ABGR |} Packed pixel formats have one of the following channel layouts: {| |SDL_PACKEDLAYOUT_NONE |- |SDL_PACKEDLAYOUT_332 |- |SDL_PACKEDLAYOUT_4444 |- |SDL_PACKEDLAYOUT_1555 |- |SDL_PACKEDLAYOUT_5551 |- |SDL_PACKEDLAYOUT_565 |- |SDL_PACKEDLAYOUT_8888 |- |SDL_PACKEDLAYOUT_2101010 |- |SDL_PACKEDLAYOUT_1010102 |} === SDL_PIXELFORMAT_*32 aliases === SDL_PIXELFORMAT_RGBA32 is an alias for SDL_PIXELFORMAT_RGBA8888 on big endian machines and for SDL_PIXELFORMAT_ABGR8888 on little endian machines, so you can use it to specify that your pixels are represented as RGBA byte arrays, like SDL_PIXELFORMAT_RGB24 is for RGB byte arrays.
However, being just an alias, it has the exact same value of the aliased type so [[SDL_GetPixelFormatName]](SDL_PIXELFORMAT_RGBA32) will return the name of the aliased type (e.g. "SDL_PIXELFORMAT_ABGR8888"), depending on your platform.
The same applies to SDL_PIXELFORMAT_ARGB32, SDL_PIXELFORMAT_BGRA32 and SDL_PIXELFORMAT_ABGR32 (with the only difference that they alias other pixel formats, of course). The SDL_PIXELFORMAT_*32 aliases are available since SDL 2.0.5. == Related Structures == :[[SDL_DisplayMode]] :[[SDL_RendererInfo]] == Related Functions == :[[SDL_CreateTexture]] :[[SDL_CreateTextureFromSurface]] :[[SDL_GetPixelFormatName]] :[[SDL_GetPixelFormatEnumForMasks]] :[[SDL_GetMasksForPixelFormatEnum]] :[[SDL_QueryTexture]] :[[SDL_RenderReadPixels]] ---- [[CategoryEnum]], [[CategoryPixels]], [[CategoryDraft]]