wayland/shm: version detection that also works

The previous method would break on the next release. Because I am stupid.
This commit is contained in:
Alexander Preisinger 2013-09-09 18:21:48 +02:00
parent 005407338d
commit b30ad057a5
1 changed files with 8 additions and 3 deletions

View File

@ -41,6 +41,13 @@
#define MAX_BUFFERS 2
// minium target version for the new formats (1.2.90)
#define MINIMUM_VERSION (1 << 16 | 2 << 8 | 90)
#define CURRENT_VERSION (WAYLAND_VERSION_MAJOR << 16 | \
WAYLAND_VERSION_MINOR << 8 | \
WAYLAND_VERSION_MICRO)
static void draw_image(struct vo *vo, mp_image_t *mpi);
static const struct wl_callback_listener frame_listener;
@ -58,9 +65,7 @@ struct fmtentry {
static const struct fmtentry fmttable[] = {
{WL_SHM_FORMAT_ARGB8888, IMGFMT_BGRA}, // 8b 8g 8r 8a
{WL_SHM_FORMAT_XRGB8888, IMGFMT_BGR0},
#if (WAYLAND_VERSION_MAJOR >= 1) \
&& (WAYLAND_VERSION_MINOR >= 2) \
&& (WAYLAND_VERSION_MICRO >= 90)
#if CURRENT_VERSION >= MINIMUM_VERSION
{WL_SHM_FORMAT_RGB332, IMGFMT_BGR8}, // 3b 3g 2r
{WL_SHM_FORMAT_BGR233, IMGFMT_RGB8}, // 3r 3g 3b,
{WL_SHM_FORMAT_XRGB4444, IMGFMT_BGR12_LE}, // 4b 4g 4r 4a