From b9937484f4deefbc07c5fc3483d15885068e975d Mon Sep 17 00:00:00 2001 From: Vaxry Date: Thu, 30 Nov 2023 10:14:35 +0000 Subject: screencopy: fix broken shm copying fixes #4001 --- src/protocols/ToplevelExport.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/protocols/ToplevelExport.cpp') diff --git a/src/protocols/ToplevelExport.cpp b/src/protocols/ToplevelExport.cpp index 6c626e87..ef9906d9 100644 --- a/src/protocols/ToplevelExport.cpp +++ b/src/protocols/ToplevelExport.cpp @@ -363,7 +363,12 @@ bool CToplevelExportProtocolManager::copyFrameShm(SScreencopyFrame* frame, times const auto PMONITOR = g_pCompositor->getMonitorFromID(frame->pWindow->m_iMonitorID); CRegion fakeDamage{0, 0, PMONITOR->vecPixelSize.x * 10, PMONITOR->vecPixelSize.y * 10}; - if (!g_pHyprRenderer->beginRender(PMONITOR, fakeDamage, RENDER_MODE_FULL_FAKE)) { + g_pHyprRenderer->makeEGLCurrent(); + + CFramebuffer outFB; + outFB.alloc(PMONITOR->vecPixelSize.x, PMONITOR->vecPixelSize.y); + + if (!g_pHyprRenderer->beginRender(PMONITOR, fakeDamage, RENDER_MODE_FULL_FAKE, nullptr, &outFB)) { wlr_buffer_end_data_ptr_access(frame->buffer); return false; } -- cgit v1.2.3