###### (This is the documentation for SDL3, which is the current stable version. [SDL2](https://wiki.libsdl.org/SDL2/) was the previous version!) # SDL_DEFINE_PIXELFORMAT A macro for defining custom non-FourCC pixel formats. ## Header File Defined in [](https://github.com/libsdl-org/SDL/blob/main/include/SDL3/SDL_pixels.h) ## Syntax ```c #define SDL_DEFINE_PIXELFORMAT(type, order, layout, bits, bytes) \ ((1 << 28) | ((type) << 24) | ((order) << 20) | ((layout) << 16) | \ ((bits) << 8) | ((bytes) << 0)) ``` ## Macro Parameters | | | | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | | **type** | the type of the new format, probably a [SDL_PixelType](SDL_PixelType) value. | | **order** | the order of the new format, probably a [SDL_BitmapOrder](SDL_BitmapOrder), [SDL_PackedOrder](SDL_PackedOrder), or [SDL_ArrayOrder](SDL_ArrayOrder) value. | | **layout** | the layout of the new format, probably an [SDL_PackedLayout](SDL_PackedLayout) value or zero. | | **bits** | the number of bits per pixel of the new format. | | **bytes** | the number of bytes per pixel of the new format. | ## Return Value Returns a format value in the style of [SDL_PixelFormat](SDL_PixelFormat). ## Remarks For example, defining [SDL_PIXELFORMAT_RGBA8888](SDL_PIXELFORMAT_RGBA8888) looks like this: ```c SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_RGBA, SDL_PACKEDLAYOUT_8888, 32, 4) ``` ## Thread Safety It is safe to call this macro from any thread. ## Version This macro is available since SDL 3.1.3. ---- [CategoryAPI](CategoryAPI), [CategoryAPIMacro](CategoryAPIMacro), [CategoryPixels](CategoryPixels)