render/shm_format: add wl_shm_format conversion helpers

This commit is contained in:
Simon Ser 2021-02-16 19:01:33 +01:00
parent bfd020047d
commit 5d6d76c61f
3 changed files with 34 additions and 0 deletions

View file

@ -0,0 +1,9 @@
#ifndef RENDER_SHM_FORMAT_H
#define RENDER_SHM_FORMAT_H
#include <wayland-server-protocol.h>
uint32_t convert_wl_shm_format_to_drm(enum wl_shm_format fmt);
enum wl_shm_format convert_drm_format_to_wl_shm(uint32_t fmt);
#endif

View file

@ -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',

24
render/shm_format.c Normal file
View file

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