summaryrefslogtreecommitdiff
path: root/src/render/OpenGL.cpp
diff options
context:
space:
mode:
authorUjinT34 <41110182+UjinT34@users.noreply.github.com>2026-03-09 14:10:08 +0300
committerGitHub <noreply@github.com>2026-03-09 11:10:08 +0000
commit03f444e0ab1cabe79cf05f2291b168d9c7a7ab49 (patch)
treec0155b4092b56a774cd56e341c47b6df6f2f50c1 /src/render/OpenGL.cpp
parenta4ecae91600d7e8ceb31610176d6b40cb816711b (diff)
renderer: fix crash with nullptr FBs (#13641)
Diffstat (limited to 'src/render/OpenGL.cpp')
-rw-r--r--src/render/OpenGL.cpp24
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();