summaryrefslogtreecommitdiff
path: root/src/render/decorations/DecorationPositioner.hpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2026-04-04 23:20:37 +0100
committerVaxry <43317083+vaxerski@users.noreply.github.com>2026-04-04 19:00:34 -0400
commit1c2bd2c818ba7d3cfc0a073f73f660d5ee23de1d (patch)
treedddf5642e092d461effb814cb5889e83577236ce /src/render/decorations/DecorationPositioner.hpp
parent3c88ac8ead1fec0fb76cf8a48da0b8e1afe864df (diff)
render/decorations: improve cache performance
Diffstat (limited to 'src/render/decorations/DecorationPositioner.hpp')
-rw-r--r--src/render/decorations/DecorationPositioner.hpp29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/render/decorations/DecorationPositioner.hpp b/src/render/decorations/DecorationPositioner.hpp
index 3010824f..11ca12fd 100644
--- a/src/render/decorations/DecorationPositioner.hpp
+++ b/src/render/decorations/DecorationPositioner.hpp
@@ -80,23 +80,24 @@ class CDecorationPositioner {
};
struct SWindowData {
- Vector2D lastWindowSize = {};
- SBoxExtents reserved = {};
- SBoxExtents extents = {};
- SBoxExtents decorationExtents = {};
- SBoxExtents decorationInputExtents = {};
- bool needsRecalc = false;
- bool needsDamageExtents = true;
+ Vector2D lastWindowSize = {};
+ SBoxExtents reserved = {};
+ SBoxExtents extents = {};
+ SBoxExtents decorationExtents = {};
+ SBoxExtents decorationInputExtents = {};
+ bool needsRecalc = false;
+ bool needsDamageExtents = true;
+ std::vector<UP<SWindowPositioningData>> positioningDatas;
};
- std::map<PHLWINDOWREF, SWindowData> m_windowDatas;
- std::vector<UP<SWindowPositioningData>> m_windowPositioningDatas;
+ std::map<PHLWINDOWREF, SWindowData> m_windowDatas;
+ bool m_needsSanitize = false;
- SWindowPositioningData* getDataFor(IHyprWindowDecoration* pDecoration, PHLWINDOW pWindow);
- SBoxExtents computeWindowDecorationExtents(PHLWINDOWREF pWindow, bool inputOnly);
- void onWindowUnmap(PHLWINDOW pWindow);
- void onWindowMap(PHLWINDOW pWindow);
- void sanitizeDatas();
+ SWindowPositioningData* getDataFor(IHyprWindowDecoration* pDecoration, PHLWINDOW pWindow);
+ SBoxExtents computeWindowDecorationExtents(PHLWINDOWREF pWindow, bool inputOnly);
+ void onWindowUnmap(PHLWINDOW pWindow);
+ void onWindowMap(PHLWINDOW pWindow);
+ void sanitizeDatas();
};
inline UP<CDecorationPositioner> g_pDecorationPositioner;