// Generated by gen_pixel_formats.sh - DO NOT EDIT #include #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; } } 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; } }