render/pixel_format: generate opaque substitute table via kdfs

This commit is contained in:
Simon Ser 2026-03-05 16:49:05 +01:00
parent e69e1b5f7a
commit e00171d871
3 changed files with 70 additions and 32 deletions

View file

@ -518,6 +518,57 @@ bool pixel_format_is_opaque(uint32_t format) {
}
}
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;
}
}
bool pixel_format_is_ycbcr(uint32_t format) {
switch (format) {
case DRM_FORMAT_AVUY8888: