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.
This commit is contained in:
wm4 2014-11-05 01:09:42 +01:00
parent 91471deecc
commit fce77c05f5
1 changed files with 22 additions and 18 deletions

View File

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