From 7201aae3d607ad121ea0dfb3a50eb2c3f65b7d85 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Wed, 1 Dec 2021 13:35:50 +0100 Subject: render/drm-format-set: add wlr_drm_format_set_intersect This intersects two DRM format sets. This is useful for implementing DMA-BUF feedback in compositors, see e.g. the Sway PR [1]. [1]: https://github.com/swaywm/sway/pull/6313 --- include/wlr/render/drm_format_set.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'include/wlr/render') diff --git a/include/wlr/render/drm_format_set.h b/include/wlr/render/drm_format_set.h index 9427df3b..9f4a86ea 100644 --- a/include/wlr/render/drm_format_set.h +++ b/include/wlr/render/drm_format_set.h @@ -63,4 +63,13 @@ bool wlr_drm_format_set_has(const struct wlr_drm_format_set *set, bool wlr_drm_format_set_add(struct wlr_drm_format_set *set, uint32_t format, uint64_t modifier); +/** + * Intersect two DRM format sets `a` and `b`, storing in the destination set + * `dst` the format + modifier pairs which are in both source sets. + * + * Returns false on failure or when the intersection is empty. + */ +bool wlr_drm_format_set_intersect(struct wlr_drm_format_set *dst, + const struct wlr_drm_format_set *a, const struct wlr_drm_format_set *b); + #endif -- cgit v1.2.3