diff options
| author | Vaxry <vaxry@vaxry.net> | 2024-06-03 21:10:31 +0200 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2024-06-03 21:10:31 +0200 |
| commit | 0ac0f32671b949b7bde276f1175bed035fb09fd9 (patch) | |
| tree | 96413f1e774c2c0a4bd3a9c8f96968cd9b56d8ac /src/protocols/ToplevelExport.cpp | |
| parent | b30c7125d73f26b5919293e6743768d5f13cedc2 (diff) | |
toplevelexport: avoid locking software cursors during render
this may trigger a render begin/end and fuck up the pass
fixes #6277
Diffstat (limited to 'src/protocols/ToplevelExport.cpp')
| -rw-r--r-- | src/protocols/ToplevelExport.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/protocols/ToplevelExport.cpp b/src/protocols/ToplevelExport.cpp index d3b71a9e..14629214 100644 --- a/src/protocols/ToplevelExport.cpp +++ b/src/protocols/ToplevelExport.cpp @@ -378,16 +378,16 @@ bool CToplevelExportProtocolManager::copyFrameShm(SScreencopyFrame* frame, times CFramebuffer outFB; outFB.alloc(PMONITOR->vecPixelSize.x, PMONITOR->vecPixelSize.y, g_pHyprRenderer->isNvidia() ? DRM_FORMAT_XBGR8888 : PMONITOR->drmFormat); - if (!g_pHyprRenderer->beginRender(PMONITOR, fakeDamage, RENDER_MODE_FULL_FAKE, nullptr, &outFB)) { - wlr_buffer_end_data_ptr_access(frame->buffer); - return false; - } - if (frame->overlayCursor) { g_pPointerManager->lockSoftwareForMonitor(PMONITOR->self.lock()); g_pPointerManager->damageCursor(PMONITOR->self.lock()); } + if (!g_pHyprRenderer->beginRender(PMONITOR, fakeDamage, RENDER_MODE_FULL_FAKE, nullptr, &outFB)) { + wlr_buffer_end_data_ptr_access(frame->buffer); + return false; + } + g_pHyprOpenGL->clear(CColor(0, 0, 0, 1.0)); // render client at 0,0 |
