diff options
Diffstat (limited to 'render')
-rw-r--r-- | render/meson.build | 1 | ||||
-rw-r--r-- | render/shm_format.c | 24 |
2 files changed, 25 insertions, 0 deletions
diff --git a/render/meson.build b/render/meson.build index f3e1cd26..644c2e21 100644 --- a/render/meson.build +++ b/render/meson.build @@ -4,6 +4,7 @@ wlr_files += files( 'egl.c', 'drm_format_set.c', 'gbm_allocator.c', + 'shm_format.c', 'swapchain.c', 'wlr_renderer.c', 'wlr_texture.c', diff --git a/render/shm_format.c b/render/shm_format.c new file mode 100644 index 00000000..cb3f7c01 --- /dev/null +++ b/render/shm_format.c @@ -0,0 +1,24 @@ +#include <drm_fourcc.h> +#include "render/shm_format.h" + +uint32_t convert_wl_shm_format_to_drm(enum wl_shm_format fmt) { + switch (fmt) { + case WL_SHM_FORMAT_XRGB8888: + return DRM_FORMAT_XRGB8888; + case WL_SHM_FORMAT_ARGB8888: + return DRM_FORMAT_ARGB8888; + default: + return (uint32_t)fmt; + } +} + +enum wl_shm_format convert_drm_format_to_wl_shm(uint32_t fmt) { + switch (fmt) { + case DRM_FORMAT_XRGB8888: + return WL_SHM_FORMAT_XRGB8888; + case DRM_FORMAT_ARGB8888: + return WL_SHM_FORMAT_ARGB8888; + default: + return (enum wl_shm_format)fmt; + } +} |