mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-26 22:05:58 +01:00
fix some memory issues
This commit is contained in:
parent
df2215cef7
commit
473d4591b0
3 changed files with 6 additions and 23 deletions
|
@ -662,8 +662,8 @@ void CCompositor::cleanupFadingOut() {
|
||||||
g_pHyprOpenGL->m_mLayerFramebuffers[ls].release();
|
g_pHyprOpenGL->m_mLayerFramebuffers[ls].release();
|
||||||
g_pHyprOpenGL->m_mLayerFramebuffers.erase(ls);
|
g_pHyprOpenGL->m_mLayerFramebuffers.erase(ls);
|
||||||
|
|
||||||
m_lSurfacesFadingOut.remove(ls);
|
|
||||||
delete ls;
|
delete ls;
|
||||||
|
m_lSurfacesFadingOut.remove(ls);
|
||||||
|
|
||||||
Debug::log(LOG, "Cleanup: destroyed a layersurface");
|
Debug::log(LOG, "Cleanup: destroyed a layersurface");
|
||||||
|
|
||||||
|
|
|
@ -59,27 +59,10 @@ void Events::listener_destroyLayerSurface(void* owner, void* data) {
|
||||||
Debug::log(LOG, "LayerSurface %x destroyed", layersurface->layerSurface);
|
Debug::log(LOG, "LayerSurface %x destroyed", layersurface->layerSurface);
|
||||||
|
|
||||||
if (!layersurface->fadingOut) {
|
if (!layersurface->fadingOut) {
|
||||||
if (layersurface->layerSurface->mapped) {
|
|
||||||
Debug::log(LOG, "LayerSurface wasn't unmapped, making a snapshot now!");
|
|
||||||
|
|
||||||
// make a snapshot and start fade
|
|
||||||
// layersurfaces aren't required to unmap before destroy
|
|
||||||
g_pHyprOpenGL->makeLayerSnapshot(layersurface);
|
|
||||||
layersurface->alpha = 0.f;
|
|
||||||
|
|
||||||
layersurface->fadingOut = true;
|
|
||||||
} else {
|
|
||||||
Debug::log(LOG, "Removing LayerSurface that wasn't mapped.");
|
Debug::log(LOG, "Removing LayerSurface that wasn't mapped.");
|
||||||
layersurface->alpha.setValueAndWarp(0.f);
|
layersurface->alpha.setValueAndWarp(0.f);
|
||||||
layersurface->fadingOut = true;
|
layersurface->fadingOut = true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (layersurface->layerSurface->mapped)
|
|
||||||
layersurface->layerSurface->mapped = false;
|
|
||||||
|
|
||||||
if (layersurface->layerSurface->surface == g_pCompositor->m_pLastFocus)
|
|
||||||
g_pCompositor->m_pLastFocus = nullptr;
|
|
||||||
|
|
||||||
layersurface->hyprListener_commitLayerSurface.removeCallback();
|
layersurface->hyprListener_commitLayerSurface.removeCallback();
|
||||||
layersurface->hyprListener_destroyLayerSurface.removeCallback();
|
layersurface->hyprListener_destroyLayerSurface.removeCallback();
|
||||||
|
|
|
@ -60,8 +60,8 @@ float CBezierCurve::getYForPoint(float x) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// in the name of performance i shall make a hack
|
// in the name of performance i shall make a hack
|
||||||
const auto LOWERPOINT = &m_aPointsBaked[(int)((float)BAKEDPOINTS * lowerT)];
|
const auto LOWERPOINT = &m_aPointsBaked[std::clamp((int)((float)BAKEDPOINTS * lowerT), 0, 199)];
|
||||||
const auto UPPERPOINT = &m_aPointsBaked[(int)((float)BAKEDPOINTS * upperT)];
|
const auto UPPERPOINT = &m_aPointsBaked[std::clamp((int)((float)BAKEDPOINTS * upperT), 0, 199)];
|
||||||
|
|
||||||
const auto PERCINDELTA = (x - LOWERPOINT->x) / (UPPERPOINT->x - LOWERPOINT->x);
|
const auto PERCINDELTA = (x - LOWERPOINT->x) / (UPPERPOINT->x - LOWERPOINT->x);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue