diff options
Diffstat (limited to 'src/render/OpenGL.cpp')
| -rw-r--r-- | src/render/OpenGL.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp index 3ae259b5..7628206e 100644 --- a/src/render/OpenGL.cpp +++ b/src/render/OpenGL.cpp @@ -1074,6 +1074,10 @@ void CHyprOpenGLImpl::renderBorder(wlr_box* box, const CGradientValueData& grad, void CHyprOpenGLImpl::makeRawWindowSnapshot(CWindow* pWindow, CFramebuffer* pFramebuffer) { // we trust the window is valid. const auto PMONITOR = g_pCompositor->getMonitorFromID(pWindow->m_iMonitorID); + + if (!PMONITOR || !PMONITOR->output) + return; + wlr_output_attach_render(PMONITOR->output, nullptr); // we need to "damage" the entire monitor @@ -1129,6 +1133,10 @@ void CHyprOpenGLImpl::makeRawWindowSnapshot(CWindow* pWindow, CFramebuffer* pFra void CHyprOpenGLImpl::makeWindowSnapshot(CWindow* pWindow) { // we trust the window is valid. const auto PMONITOR = g_pCompositor->getMonitorFromID(pWindow->m_iMonitorID); + + if (!PMONITOR || !PMONITOR->output) + return; + wlr_output_attach_render(PMONITOR->output, nullptr); // we need to "damage" the entire monitor @@ -1189,6 +1197,10 @@ void CHyprOpenGLImpl::makeWindowSnapshot(CWindow* pWindow) { void CHyprOpenGLImpl::makeLayerSnapshot(SLayerSurface* pLayer) { // we trust the window is valid. const auto PMONITOR = g_pCompositor->getMonitorFromID(pLayer->monitorID); + + if (!PMONITOR || !PMONITOR->output) + return; + wlr_output_attach_render(PMONITOR->output, nullptr); // we need to "damage" the entire monitor |
