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; +}  | 
