diff options
| author | nmzik <Nmzik@mail.ru> | 2023-12-11 17:28:22 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-11 16:28:22 +0000 |
| commit | 53ce7992beef6320edc40e167b7bf6cc81f9bec2 (patch) | |
| tree | ff8b476f3c659ad5ae0e22a92b1d8a8b7e7c337d /src/render/OpenGL.cpp | |
| parent | 167f2ed3b2bb18ceeabb831ac80b655ef8e16867 (diff) | |
renderer: double lookup fix, input: double conversion fix (#4124)
Diffstat (limited to 'src/render/OpenGL.cpp')
| -rw-r--r-- | src/render/OpenGL.cpp | 27 |
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); } |
