SDL_PixelFormatEnum
An enumeration of pixel formats.
Contents
Values
Pixel Format Macros
SDL_PIXELTYPE(format) |
the type of the pixel format; see Remarks for details |
SDL_PIXELORDER(format) |
the ordering of channels or bits in the pixel format; see Remarks for details |
SDL_PIXELLAYOUT(format) |
the channel bit pattern of the pixel format; see 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) |
Code Examples
You can add your code example here
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