2026-02-19 15:54:43 +01:00
|
|
|
// Generated by gen_pixel_formats.sh - DO NOT EDIT
|
|
|
|
|
|
|
|
|
|
#include <drm_fourcc.h>
|
|
|
|
|
#include "render/pixel_format.h"
|
|
|
|
|
|
|
|
|
|
const struct wlr_pixel_format_info pixel_format_info[] = {
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_ABGR1555,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_ABGR16161616,
|
|
|
|
|
.bytes_per_block = 8,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_ABGR16161616F,
|
|
|
|
|
.bytes_per_block = 8,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_ABGR2101010,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_ABGR32323232F,
|
|
|
|
|
.bytes_per_block = 16,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_ABGR4444,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_ABGR8888,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_ARGB1555,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_ARGB16161616,
|
|
|
|
|
.bytes_per_block = 8,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_ARGB16161616F,
|
|
|
|
|
.bytes_per_block = 8,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_ARGB2101010,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_ARGB4444,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_ARGB8888,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_AVUY8888,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_AXBXGXRX106106106106,
|
|
|
|
|
.bytes_per_block = 8,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_AYUV,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_BGR161616,
|
|
|
|
|
.bytes_per_block = 6,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_BGR161616F,
|
|
|
|
|
.bytes_per_block = 6,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_BGR233,
|
|
|
|
|
.bytes_per_block = 1,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_BGR323232F,
|
|
|
|
|
.bytes_per_block = 12,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_BGR565,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_BGR888,
|
|
|
|
|
.bytes_per_block = 3,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_BGRA1010102,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_BGRA4444,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_BGRA5551,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_BGRA8888,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_BGRX1010102,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_BGRX4444,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_BGRX5551,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_BGRX8888,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_GR1616,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_GR1616F,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_GR3232F,
|
|
|
|
|
.bytes_per_block = 8,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_GR88,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_R10,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_R12,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_R16,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_R16F,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_R32F,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_R8,
|
|
|
|
|
.bytes_per_block = 1,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_RG1616,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_RG88,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_RGB161616,
|
|
|
|
|
.bytes_per_block = 6,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_RGB332,
|
|
|
|
|
.bytes_per_block = 1,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_RGB565,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_RGB888,
|
|
|
|
|
.bytes_per_block = 3,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_RGBA1010102,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_RGBA4444,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_RGBA5551,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_RGBA8888,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_RGBX1010102,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_RGBX4444,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_RGBX5551,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_RGBX8888,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_UYVY,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 2,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_VUY888,
|
|
|
|
|
.bytes_per_block = 3,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_VYUY,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 2,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_XBGR1555,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_XBGR16161616,
|
|
|
|
|
.bytes_per_block = 8,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_XBGR16161616F,
|
|
|
|
|
.bytes_per_block = 8,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_XBGR2101010,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_XBGR4444,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_XBGR8888,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_XRGB1555,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_XRGB16161616,
|
|
|
|
|
.bytes_per_block = 8,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_XRGB16161616F,
|
|
|
|
|
.bytes_per_block = 8,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_XRGB2101010,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_XRGB4444,
|
|
|
|
|
.bytes_per_block = 2,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_XRGB8888,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_XVUY8888,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_XYUV8888,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 1,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_YUYV,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 2,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.drm_format = DRM_FORMAT_YVYU,
|
|
|
|
|
.bytes_per_block = 4,
|
|
|
|
|
.block_width = 2,
|
|
|
|
|
.block_height = 1,
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const size_t pixel_format_info_len = sizeof(pixel_format_info) / sizeof(pixel_format_info[0]);
|
|
|
|
|
|
|
|
|
|
bool pixel_format_is_opaque(uint32_t format) {
|
|
|
|
|
switch (format) {
|
|
|
|
|
case DRM_FORMAT_BGR161616:
|
|
|
|
|
case DRM_FORMAT_BGR161616F:
|
|
|
|
|
case DRM_FORMAT_BGR233:
|
|
|
|
|
case DRM_FORMAT_BGR323232F:
|
|
|
|
|
case DRM_FORMAT_BGR565:
|
|
|
|
|
case DRM_FORMAT_BGR888:
|
|
|
|
|
case DRM_FORMAT_BGRX1010102:
|
|
|
|
|
case DRM_FORMAT_BGRX4444:
|
|
|
|
|
case DRM_FORMAT_BGRX5551:
|
|
|
|
|
case DRM_FORMAT_BGRX8888:
|
|
|
|
|
case DRM_FORMAT_GR1616:
|
|
|
|
|
case DRM_FORMAT_GR1616F:
|
|
|
|
|
case DRM_FORMAT_GR3232F:
|
|
|
|
|
case DRM_FORMAT_GR88:
|
|
|
|
|
case DRM_FORMAT_NV12:
|
|
|
|
|
case DRM_FORMAT_NV16:
|
|
|
|
|
case DRM_FORMAT_NV21:
|
|
|
|
|
case DRM_FORMAT_NV24:
|
|
|
|
|
case DRM_FORMAT_NV42:
|
|
|
|
|
case DRM_FORMAT_NV61:
|
|
|
|
|
case DRM_FORMAT_R10:
|
|
|
|
|
case DRM_FORMAT_R12:
|
|
|
|
|
case DRM_FORMAT_R16:
|
|
|
|
|
case DRM_FORMAT_R16F:
|
|
|
|
|
case DRM_FORMAT_R32F:
|
|
|
|
|
case DRM_FORMAT_R8:
|
|
|
|
|
case DRM_FORMAT_RG1616:
|
|
|
|
|
case DRM_FORMAT_RG88:
|
|
|
|
|
case DRM_FORMAT_RGB161616:
|
|
|
|
|
case DRM_FORMAT_RGB332:
|
|
|
|
|
case DRM_FORMAT_RGB565:
|
|
|
|
|
case DRM_FORMAT_RGB888:
|
|
|
|
|
case DRM_FORMAT_RGBX1010102:
|
|
|
|
|
case DRM_FORMAT_RGBX4444:
|
|
|
|
|
case DRM_FORMAT_RGBX5551:
|
|
|
|
|
case DRM_FORMAT_RGBX8888:
|
|
|
|
|
case DRM_FORMAT_S016:
|
|
|
|
|
case DRM_FORMAT_S216:
|
|
|
|
|
case DRM_FORMAT_S416:
|
|
|
|
|
case DRM_FORMAT_UYVY:
|
|
|
|
|
case DRM_FORMAT_VUY888:
|
|
|
|
|
case DRM_FORMAT_VYUY:
|
|
|
|
|
case DRM_FORMAT_XBGR1555:
|
|
|
|
|
case DRM_FORMAT_XBGR16161616:
|
|
|
|
|
case DRM_FORMAT_XBGR16161616F:
|
|
|
|
|
case DRM_FORMAT_XBGR2101010:
|
|
|
|
|
case DRM_FORMAT_XBGR4444:
|
|
|
|
|
case DRM_FORMAT_XBGR8888:
|
|
|
|
|
case DRM_FORMAT_XRGB1555:
|
|
|
|
|
case DRM_FORMAT_XRGB16161616:
|
|
|
|
|
case DRM_FORMAT_XRGB16161616F:
|
|
|
|
|
case DRM_FORMAT_XRGB2101010:
|
|
|
|
|
case DRM_FORMAT_XRGB4444:
|
|
|
|
|
case DRM_FORMAT_XRGB8888:
|
|
|
|
|
case DRM_FORMAT_XVUY8888:
|
|
|
|
|
case DRM_FORMAT_XYUV8888:
|
|
|
|
|
case DRM_FORMAT_YUV420:
|
|
|
|
|
case DRM_FORMAT_YUV422:
|
|
|
|
|
case DRM_FORMAT_YUV444:
|
|
|
|
|
case DRM_FORMAT_YUYV:
|
|
|
|
|
case DRM_FORMAT_YVU420:
|
|
|
|
|
case DRM_FORMAT_YVU422:
|
|
|
|
|
case DRM_FORMAT_YVU444:
|
|
|
|
|
case DRM_FORMAT_YVYU:
|
|
|
|
|
return true;
|
|
|
|
|
default:
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-05 16:49:05 +01:00
|
|
|
uint32_t pixel_format_get_opaque_substitute(uint32_t format) {
|
|
|
|
|
switch (format) {
|
|
|
|
|
case DRM_FORMAT_ABGR1555:
|
|
|
|
|
return DRM_FORMAT_XBGR1555;
|
|
|
|
|
case DRM_FORMAT_ABGR16161616:
|
|
|
|
|
return DRM_FORMAT_XBGR16161616;
|
|
|
|
|
case DRM_FORMAT_ABGR16161616F:
|
|
|
|
|
return DRM_FORMAT_XBGR16161616F;
|
|
|
|
|
case DRM_FORMAT_ABGR2101010:
|
|
|
|
|
return DRM_FORMAT_XBGR2101010;
|
|
|
|
|
case DRM_FORMAT_ABGR4444:
|
|
|
|
|
return DRM_FORMAT_XBGR4444;
|
|
|
|
|
case DRM_FORMAT_ABGR8888:
|
|
|
|
|
return DRM_FORMAT_XBGR8888;
|
|
|
|
|
case DRM_FORMAT_ARGB1555:
|
|
|
|
|
return DRM_FORMAT_XRGB1555;
|
|
|
|
|
case DRM_FORMAT_ARGB16161616:
|
|
|
|
|
return DRM_FORMAT_XRGB16161616;
|
|
|
|
|
case DRM_FORMAT_ARGB16161616F:
|
|
|
|
|
return DRM_FORMAT_XRGB16161616F;
|
|
|
|
|
case DRM_FORMAT_ARGB2101010:
|
|
|
|
|
return DRM_FORMAT_XRGB2101010;
|
|
|
|
|
case DRM_FORMAT_ARGB4444:
|
|
|
|
|
return DRM_FORMAT_XRGB4444;
|
|
|
|
|
case DRM_FORMAT_ARGB8888:
|
|
|
|
|
return DRM_FORMAT_XRGB8888;
|
|
|
|
|
case DRM_FORMAT_AVUY8888:
|
|
|
|
|
return DRM_FORMAT_XVUY8888;
|
|
|
|
|
case DRM_FORMAT_AYUV:
|
|
|
|
|
return DRM_FORMAT_XYUV8888;
|
|
|
|
|
case DRM_FORMAT_BGRA1010102:
|
|
|
|
|
return DRM_FORMAT_BGRX1010102;
|
|
|
|
|
case DRM_FORMAT_BGRA4444:
|
|
|
|
|
return DRM_FORMAT_BGRX4444;
|
|
|
|
|
case DRM_FORMAT_BGRA5551:
|
|
|
|
|
return DRM_FORMAT_BGRX5551;
|
|
|
|
|
case DRM_FORMAT_BGRA8888:
|
|
|
|
|
return DRM_FORMAT_BGRX8888;
|
|
|
|
|
case DRM_FORMAT_RGBA1010102:
|
|
|
|
|
return DRM_FORMAT_RGBX1010102;
|
|
|
|
|
case DRM_FORMAT_RGBA4444:
|
|
|
|
|
return DRM_FORMAT_RGBX4444;
|
|
|
|
|
case DRM_FORMAT_RGBA5551:
|
|
|
|
|
return DRM_FORMAT_RGBX5551;
|
|
|
|
|
case DRM_FORMAT_RGBA8888:
|
|
|
|
|
return DRM_FORMAT_RGBX8888;
|
|
|
|
|
default:
|
|
|
|
|
return DRM_FORMAT_INVALID;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-02-19 15:54:43 +01:00
|
|
|
bool pixel_format_is_ycbcr(uint32_t format) {
|
|
|
|
|
switch (format) {
|
|
|
|
|
case DRM_FORMAT_AVUY8888:
|
|
|
|
|
case DRM_FORMAT_AYUV:
|
|
|
|
|
case DRM_FORMAT_NV12:
|
|
|
|
|
case DRM_FORMAT_NV16:
|
|
|
|
|
case DRM_FORMAT_NV21:
|
|
|
|
|
case DRM_FORMAT_NV24:
|
|
|
|
|
case DRM_FORMAT_NV42:
|
|
|
|
|
case DRM_FORMAT_NV61:
|
|
|
|
|
case DRM_FORMAT_S016:
|
|
|
|
|
case DRM_FORMAT_S216:
|
|
|
|
|
case DRM_FORMAT_S416:
|
|
|
|
|
case DRM_FORMAT_UYVY:
|
|
|
|
|
case DRM_FORMAT_VUY888:
|
|
|
|
|
case DRM_FORMAT_VYUY:
|
|
|
|
|
case DRM_FORMAT_XVUY8888:
|
|
|
|
|
case DRM_FORMAT_XYUV8888:
|
|
|
|
|
case DRM_FORMAT_YUV420:
|
|
|
|
|
case DRM_FORMAT_YUV422:
|
|
|
|
|
case DRM_FORMAT_YUV444:
|
|
|
|
|
case DRM_FORMAT_YUYV:
|
|
|
|
|
case DRM_FORMAT_YVU420:
|
|
|
|
|
case DRM_FORMAT_YVU422:
|
|
|
|
|
case DRM_FORMAT_YVU444:
|
|
|
|
|
case DRM_FORMAT_YVYU:
|
|
|
|
|
return true;
|
|
|
|
|
default:
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|