aboutsummaryrefslogtreecommitdiff
path: root/render/shm_format.c
diff options
context:
space:
mode:
Diffstat (limited to 'render/shm_format.c')
-rw-r--r--render/shm_format.c24
1 files changed, 24 insertions, 0 deletions
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;
+ }
+}