diff --git a/config.h.meson b/config.h.meson index 9919bd4d0..ef6de7e6c 100644 --- a/config.h.meson +++ b/config.h.meson @@ -138,3 +138,6 @@ /* Supports eventfd */ #mesondefine HAVE_EVENTFD + +/* libdrm defines struct drm_plane_size_hint */ +#mesondefine HAVE_DRM_PLANE_SIZE_HINT diff --git a/meson.build b/meson.build index 70ac5c231..8c5932cc6 100644 --- a/meson.build +++ b/meson.build @@ -1,6 +1,6 @@ project('mutter', 'c', version: '47.alpha', - meson_version: '>= 1.1.0', + meson_version: '>= 1.3.0', license: 'GPLv2+' ) @@ -271,6 +271,11 @@ endif if have_wayland or have_native_backend libdrm_dep = dependency('libdrm', version: libdrm_req) + have_drm_plane_size_hint = cc.has_type('struct drm_plane_size_hint', + dependencies: libdrm_dep, + prefix: '#include ') +else + have_drm_plane_size_hint = false endif have_egl_device = get_option('egl_device') @@ -567,6 +572,7 @@ cdata.set('HAVE_PANGO_FT2', have_pango_ft2) cdata.set('HAVE_TIMERFD', have_timerfd) cdata.set('HAVE_MALLOC_TRIM', have_malloc_trim) cdata.set('HAVE_EVENTFD', have_eventfd) +cdata.set('HAVE_DRM_PLANE_SIZE_HINT', have_drm_plane_size_hint) if have_x11_client xkb_base = xkeyboard_config_dep.get_variable('xkb_base') diff --git a/src/backends/native/meta-kms-plane.c b/src/backends/native/meta-kms-plane.c index 699dc02db..ff35b6093 100644 --- a/src/backends/native/meta-kms-plane.c +++ b/src/backends/native/meta-kms-plane.c @@ -63,12 +63,16 @@ struct _MetaKmsPlane MetaKmsDevice *device; }; +#ifndef HAVE_DRM_PLANE_SIZE_HINT + /* Shall be removed once available on libdrm.*/ struct drm_plane_size_hint { __u16 width; __u16 height; }; +#endif + G_DEFINE_TYPE (MetaKmsPlane, meta_kms_plane, G_TYPE_OBJECT) MetaKmsDevice *