From fce77c05f5585c623afc312635054eb23cc69c0b Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 5 Nov 2014 01:09:42 +0100 Subject: vo_wayland: don't use endian-specific defines Instead, use the native-endian alias, and switch the wayland format depending on the target platform's endian. This drops support for swapped-endian formats, but I think that is ok. Not only are the affected formats rather ancient and backwards, but using swapped formats probably does not make any sense for performance either. Untested. --- video/out/vo_wayland.c | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/video/out/vo_wayland.c b/video/out/vo_wayland.c index 87e38e45b3..8c07a7d249 100644 --- a/video/out/vo_wayland.c +++ b/video/out/vo_wayland.c @@ -33,6 +33,7 @@ #include "sub/img_convert.h" #include "common/msg.h" #include "input/input.h" +#include "osdep/endian.h" #include "osdep/timer.h" #include "wayland_common.h" @@ -51,24 +52,27 @@ static const format_t const format_table[] = { {WL_SHM_FORMAT_XRGB8888, IMGFMT_BGR0}, {WL_SHM_FORMAT_RGB332, IMGFMT_RGB8}, // 3b 3g 2r {WL_SHM_FORMAT_BGR233, IMGFMT_BGR8}, // 3r 3g 3b, - {WL_SHM_FORMAT_XRGB4444, IMGFMT_RGB444_LE}, // 4b 4g 4r 4a - {WL_SHM_FORMAT_XBGR4444, IMGFMT_BGR444_LE}, // 4r 4g 4b 4a - {WL_SHM_FORMAT_RGBX4444, IMGFMT_BGR444_BE}, // 4a 4b 4g 4r - {WL_SHM_FORMAT_BGRX4444, IMGFMT_RGB444_BE}, // 4a 4r 4g 4b - {WL_SHM_FORMAT_ARGB4444, IMGFMT_RGB444_LE}, - {WL_SHM_FORMAT_ABGR4444, IMGFMT_BGR444_LE}, - {WL_SHM_FORMAT_RGBA4444, IMGFMT_BGR444_BE}, - {WL_SHM_FORMAT_BGRA4444, IMGFMT_RGB444_BE}, - {WL_SHM_FORMAT_XRGB1555, IMGFMT_RGB555_LE}, // 5b 5g 5r 1a - {WL_SHM_FORMAT_XBGR1555, IMGFMT_BGR555_LE}, // 5r 5g 5b 1a - {WL_SHM_FORMAT_RGBX5551, IMGFMT_BGR555_BE}, // 1a 5g 5b 5r - {WL_SHM_FORMAT_BGRX5551, IMGFMT_RGB555_BE}, // 1a 5r 5g 5b - {WL_SHM_FORMAT_ARGB1555, IMGFMT_RGB555_LE}, - {WL_SHM_FORMAT_ABGR1555, IMGFMT_BGR555_LE}, - {WL_SHM_FORMAT_RGBA5551, IMGFMT_BGR555_BE}, - {WL_SHM_FORMAT_BGRA5551, IMGFMT_RGB555_BE}, - {WL_SHM_FORMAT_RGB565, IMGFMT_RGB565_LE}, // 5b 6g 5r - {WL_SHM_FORMAT_BGR565, IMGFMT_BGR565_LE}, // 5r 6g 5b +#if BYTE_ORDER == LITTLE_ENDIAN + {WL_SHM_FORMAT_XRGB4444, IMGFMT_RGB444}, // 4b 4g 4r 4a + {WL_SHM_FORMAT_XBGR4444, IMGFMT_BGR444}, // 4r 4g 4b 4a + {WL_SHM_FORMAT_ARGB4444, IMGFMT_RGB444}, + {WL_SHM_FORMAT_ABGR4444, IMGFMT_BGR444}, + {WL_SHM_FORMAT_XRGB1555, IMGFMT_RGB555}, // 5b 5g 5r 1a + {WL_SHM_FORMAT_XBGR1555, IMGFMT_BGR555}, // 5r 5g 5b 1a + {WL_SHM_FORMAT_ARGB1555, IMGFMT_RGB555}, + {WL_SHM_FORMAT_ABGR1555, IMGFMT_BGR555}, + {WL_SHM_FORMAT_RGB565, IMGFMT_RGB565}, // 5b 6g 5r + {WL_SHM_FORMAT_BGR565, IMGFMT_BGR565}, // 5r 6g 5b +#else + {WL_SHM_FORMAT_RGBX4444, IMGFMT_BGR444}, // 4a 4b 4g 4r + {WL_SHM_FORMAT_BGRX4444, IMGFMT_RGB444}, // 4a 4r 4g 4b + {WL_SHM_FORMAT_RGBA4444, IMGFMT_BGR444}, + {WL_SHM_FORMAT_BGRA4444, IMGFMT_RGB444}, + {WL_SHM_FORMAT_RGBX5551, IMGFMT_BGR555}, // 1a 5g 5b 5r + {WL_SHM_FORMAT_BGRX5551, IMGFMT_RGB555}, // 1a 5r 5g 5b + {WL_SHM_FORMAT_RGBA5551, IMGFMT_BGR555}, + {WL_SHM_FORMAT_BGRA5551, IMGFMT_RGB555}, +#endif {WL_SHM_FORMAT_RGB888, IMGFMT_BGR24}, // 8b 8g 8r {WL_SHM_FORMAT_BGR888, IMGFMT_RGB24}, // 8r 8g 8b {WL_SHM_FORMAT_XBGR8888, IMGFMT_RGB0}, -- cgit v1.2.3