mirror of
https://github.com/mpv-player/mpv.git
synced 2025-12-28 05:33:14 +00:00
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:
@@ -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},
|
||||
|
||||
Reference in New Issue
Block a user