diff options
Diffstat (limited to 'render/pixel_format.c')
-rw-r--r-- | render/pixel_format.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/render/pixel_format.c b/render/pixel_format.c new file mode 100644 index 00000000..4c4df3bc --- /dev/null +++ b/render/pixel_format.c @@ -0,0 +1,30 @@ +#include <drm_fourcc.h> +#include "render/pixel_format.h" + +static const struct wlr_pixel_format_info pixel_format_info[] = { + { + .drm_format = DRM_FORMAT_XRGB8888, + .opaque_substitute = DRM_FORMAT_INVALID, + .bpp = 32, + .has_alpha = false, + }, + { + .drm_format = DRM_FORMAT_ARGB8888, + .opaque_substitute = DRM_FORMAT_XRGB8888, + .bpp = 32, + .has_alpha = true, + } +}; + +static const size_t pixel_format_info_size = + sizeof(pixel_format_info) / sizeof(pixel_format_info[0]); + +const struct wlr_pixel_format_info *drm_get_pixel_format_info(uint32_t fmt) { + for (size_t i = 0; i < pixel_format_info_size; ++i) { + if (pixel_format_info[i].drm_format == fmt) { + return &pixel_format_info[i]; + } + } + + return NULL; +} |