render/shm_format: add wl_shm_format conversion helpers

master
Simon Ser 4 years ago
parent bfd020047d
commit 5d6d76c61f

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

@ -4,6 +4,7 @@ wlr_files += files(
'egl.c', 'egl.c',
'drm_format_set.c', 'drm_format_set.c',
'gbm_allocator.c', 'gbm_allocator.c',
'shm_format.c',
'swapchain.c', 'swapchain.c',
'wlr_renderer.c', 'wlr_renderer.c',
'wlr_texture.c', 'wlr_texture.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;
}
}
Loading…
Cancel
Save