From ff87a16b2b8d934b48f1365eacd17272dbad96f0 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Tue, 10 Oct 2023 01:11:43 +0100 Subject: [PATCH] dmabuf: correctly list modifiers relates to #99 and #106 --- src/portals/Screencopy.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/portals/Screencopy.cpp b/src/portals/Screencopy.cpp index 470c208..109269e 100644 --- a/src/portals/Screencopy.cpp +++ b/src/portals/Screencopy.cpp @@ -1022,15 +1022,16 @@ static bool wlr_query_dmabuf_modifiers(uint32_t drm_format, uint32_t num_modifie return true; } - for (size_t i = 0; i < g_pPortalManager->m_vDMABUFMods.size(); ++i) { + size_t i = 0; + for (const auto& mod : g_pPortalManager->m_vDMABUFMods) { if (i >= num_modifiers) break; - const auto& mod = g_pPortalManager->m_vDMABUFMods[i]; - if (mod.fourcc == drm_format && - (mod.mod == DRM_FORMAT_MOD_INVALID || gbm_device_get_format_modifier_plane_count(g_pPortalManager->m_sWaylandConnection.gbmDevice, mod.fourcc, mod.mod) > 0)) + (mod.mod == DRM_FORMAT_MOD_INVALID || gbm_device_get_format_modifier_plane_count(g_pPortalManager->m_sWaylandConnection.gbmDevice, mod.fourcc, mod.mod) > 0)) { modifiers[i] = mod.mod; + ++i; + } } *max_modifiers = num_modifiers;