screencopy: fix broken shm copying

fixes #4001
This commit is contained in:
Vaxry
2023-11-30 10:14:35 +00:00
parent 776f944619
commit b9937484f4
4 changed files with 64 additions and 26 deletions

View File

@@ -2312,7 +2312,7 @@ bool CHyprRenderer::beginRender(CMonitor* pMonitor, CRegion& damage, eRenderMode
if (!m_pCurrentWlrBuffer)
return false;
} else {
m_pCurrentWlrBuffer = buffer;
m_pCurrentWlrBuffer = wlr_buffer_lock(buffer);
}
try {
@@ -2331,13 +2331,17 @@ bool CHyprRenderer::beginRender(CMonitor* pMonitor, CRegion& damage, eRenderMode
void CHyprRenderer::endRender() {
const auto PMONITOR = g_pHyprOpenGL->m_RenderData.pMonitor;
g_pHyprOpenGL->end();
if (m_eRenderMode == RENDER_MODE_FULL_FAKE) {
wlr_output_rollback(PMONITOR->output);
return;
if (m_eRenderMode != RENDER_MODE_TO_BUFFER_READ_ONLY)
g_pHyprOpenGL->end();
else {
g_pHyprOpenGL->m_RenderData.pMonitor = nullptr;
g_pHyprOpenGL->m_RenderData.mouseZoomFactor = 1.f;
g_pHyprOpenGL->m_RenderData.mouseZoomUseMouse = true;
}
if (m_eRenderMode == RENDER_MODE_FULL_FAKE)
return;
if (isNvidia())
glFinish();
else