summaryrefslogtreecommitdiff
path: root/src/render/OpenGL.cpp
diff options
context:
space:
mode:
authornmzik <Nmzik@mail.ru>2023-12-11 17:28:22 +0100
committerGitHub <noreply@github.com>2023-12-11 16:28:22 +0000
commit53ce7992beef6320edc40e167b7bf6cc81f9bec2 (patch)
treeff8b476f3c659ad5ae0e22a92b1d8a8b7e7c337d /src/render/OpenGL.cpp
parent167f2ed3b2bb18ceeabb831ac80b655ef8e16867 (diff)
renderer: double lookup fix, input: double conversion fix (#4124)
Diffstat (limited to 'src/render/OpenGL.cpp')
-rw-r--r--src/render/OpenGL.cpp27
1 files changed, 17 insertions, 10 deletions
diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp
index da348a0f..cb468932 100644
--- a/src/render/OpenGL.cpp
+++ b/src/render/OpenGL.cpp
@@ -2024,16 +2024,23 @@ void CHyprOpenGLImpl::clearWithTex() {
void CHyprOpenGLImpl::destroyMonitorResources(CMonitor* pMonitor) {
g_pHyprRenderer->makeEGLCurrent();
- g_pHyprOpenGL->m_mMonitorRenderResources[pMonitor].mirrorFB.release();
- g_pHyprOpenGL->m_mMonitorRenderResources[pMonitor].offloadFB.release();
- g_pHyprOpenGL->m_mMonitorRenderResources[pMonitor].mirrorSwapFB.release();
- g_pHyprOpenGL->m_mMonitorRenderResources[pMonitor].monitorMirrorFB.release();
- g_pHyprOpenGL->m_mMonitorRenderResources[pMonitor].blurFB.release();
- g_pHyprOpenGL->m_mMonitorRenderResources[pMonitor].offMainFB.release();
- g_pHyprOpenGL->m_mMonitorRenderResources[pMonitor].stencilTex.destroyTexture();
- g_pHyprOpenGL->m_mMonitorBGTextures[pMonitor].destroyTexture();
- g_pHyprOpenGL->m_mMonitorRenderResources.erase(pMonitor);
- g_pHyprOpenGL->m_mMonitorBGTextures.erase(pMonitor);
+ auto RESIT = g_pHyprOpenGL->m_mMonitorRenderResources.find(pMonitor);
+ if (RESIT != g_pHyprOpenGL->m_mMonitorRenderResources.end()) {
+ RESIT->second.mirrorFB.release();
+ RESIT->second.offloadFB.release();
+ RESIT->second.mirrorSwapFB.release();
+ RESIT->second.monitorMirrorFB.release();
+ RESIT->second.blurFB.release();
+ RESIT->second.offMainFB.release();
+ RESIT->second.stencilTex.destroyTexture();
+ g_pHyprOpenGL->m_mMonitorRenderResources.erase(RESIT);
+ }
+
+ auto TEXIT = g_pHyprOpenGL->m_mMonitorBGTextures.find(pMonitor);
+ if (TEXIT != g_pHyprOpenGL->m_mMonitorBGTextures.end()) {
+ TEXIT->second.destroyTexture();
+ g_pHyprOpenGL->m_mMonitorBGTextures.erase(TEXIT);
+ }
Debug::log(LOG, "Monitor {} -> destroyed all render data", pMonitor->szName);
}