diff options
| author | UjinT34 <41110182+UjinT34@users.noreply.github.com> | 2026-03-09 14:10:08 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-09 11:10:08 +0000 |
| commit | 03f444e0ab1cabe79cf05f2291b168d9c7a7ab49 (patch) | |
| tree | c0155b4092b56a774cd56e341c47b6df6f2f50c1 /src/render/OpenGL.cpp | |
| parent | a4ecae91600d7e8ceb31610176d6b40cb816711b (diff) | |
renderer: fix crash with nullptr FBs (#13641)
Diffstat (limited to 'src/render/OpenGL.cpp')
| -rw-r--r-- | src/render/OpenGL.cpp | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp index 3c61e3c3..e9ca8baf 100644 --- a/src/render/OpenGL.cpp +++ b/src/render/OpenGL.cpp @@ -795,14 +795,22 @@ void CHyprOpenGLImpl::end() { } // invalidate our render FBs to signal to the driver we don't need them anymore - g_pHyprRenderer->m_renderData.pMonitor->m_mirrorFB->bind(); - GLFB(g_pHyprRenderer->m_renderData.pMonitor->m_mirrorFB)->invalidate({GL_STENCIL_ATTACHMENT, GL_COLOR_ATTACHMENT0}); - g_pHyprRenderer->m_renderData.pMonitor->m_mirrorSwapFB->bind(); - GLFB(g_pHyprRenderer->m_renderData.pMonitor->m_mirrorSwapFB)->invalidate({GL_STENCIL_ATTACHMENT, GL_COLOR_ATTACHMENT0}); - g_pHyprRenderer->m_renderData.pMonitor->m_offloadFB->bind(); - GLFB(g_pHyprRenderer->m_renderData.pMonitor->m_offloadFB)->invalidate({GL_STENCIL_ATTACHMENT, GL_COLOR_ATTACHMENT0}); - g_pHyprRenderer->m_renderData.pMonitor->m_offMainFB->bind(); - GLFB(g_pHyprRenderer->m_renderData.pMonitor->m_offMainFB)->invalidate({GL_STENCIL_ATTACHMENT, GL_COLOR_ATTACHMENT0}); + if (g_pHyprRenderer->m_renderData.pMonitor->m_mirrorFB) { + g_pHyprRenderer->m_renderData.pMonitor->m_mirrorFB->bind(); + GLFB(g_pHyprRenderer->m_renderData.pMonitor->m_mirrorFB)->invalidate({GL_STENCIL_ATTACHMENT, GL_COLOR_ATTACHMENT0}); + } + if (g_pHyprRenderer->m_renderData.pMonitor->m_mirrorSwapFB) { + g_pHyprRenderer->m_renderData.pMonitor->m_mirrorSwapFB->bind(); + GLFB(g_pHyprRenderer->m_renderData.pMonitor->m_mirrorSwapFB)->invalidate({GL_STENCIL_ATTACHMENT, GL_COLOR_ATTACHMENT0}); + } + if (g_pHyprRenderer->m_renderData.pMonitor->m_offloadFB) { + g_pHyprRenderer->m_renderData.pMonitor->m_offloadFB->bind(); + GLFB(g_pHyprRenderer->m_renderData.pMonitor->m_offloadFB)->invalidate({GL_STENCIL_ATTACHMENT, GL_COLOR_ATTACHMENT0}); + } + if (g_pHyprRenderer->m_renderData.pMonitor->m_offMainFB) { + g_pHyprRenderer->m_renderData.pMonitor->m_offMainFB->bind(); + GLFB(g_pHyprRenderer->m_renderData.pMonitor->m_offMainFB)->invalidate({GL_STENCIL_ATTACHMENT, GL_COLOR_ATTACHMENT0}); + } // reset our data m_renderData.pMonitor.reset(); |
