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 | |
| parent | 167f2ed3b2bb18ceeabb831ac80b655ef8e16867 (diff) | |
renderer: double lookup fix, input: double conversion fix (#4124)
Diffstat (limited to 'src')
| -rw-r--r-- | src/managers/input/InputManager.cpp | 4 | ||||
| -rw-r--r-- | src/render/OpenGL.cpp | 27 |
2 files changed, 19 insertions, 12 deletions
diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp index 284b4da6..374f217b 100644 --- a/src/managers/input/InputManager.cpp +++ b/src/managers/input/InputManager.cpp @@ -853,7 +853,7 @@ void CInputManager::applyConfigToKeyboard(SKeyboard* pKeyboard) { pKeyboard->repeatDelay = REPEATDELAY; pKeyboard->repeatRate = REPEATRATE; pKeyboard->numlockOn = NUMLOCKON; - pKeyboard->xkbFilePath = FILEPATH.c_str(); + pKeyboard->xkbFilePath = FILEPATH; xkb_rule_names rules = {.rules = RULES.c_str(), .model = MODEL.c_str(), .layout = LAYOUT.c_str(), .variant = VARIANT.c_str(), .options = OPTIONS.c_str()}; @@ -1586,7 +1586,7 @@ void CInputManager::destroySwitch(SSwitchDevice* pDevice) { } void CInputManager::setCursorImageUntilUnset(std::string name) { - g_pHyprRenderer->setCursorFromName(name.c_str()); + g_pHyprRenderer->setCursorFromName(name); m_bCursorImageOverridden = true; m_sCursorSurfaceInfo.inUse = false; } 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); } |
