summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2026-04-07 14:24:20 +0100
committerVaxry <43317083+vaxerski@users.noreply.github.com>2026-04-07 12:07:36 -0400
commita1c8c2f1f466fb9e9d10eeb589862e81ce89ae92 (patch)
treecfc1bfd180ab2c18ebcb06c53e0516297c96a297
parent0448e707fce798d6864320ef629ae681845bde26 (diff)
pass/surface: cache texBox
-rw-r--r--src/render/pass/SurfacePassElement.cpp8
-rw-r--r--src/render/pass/SurfacePassElement.hpp4
2 files changed, 11 insertions, 1 deletions
diff --git a/src/render/pass/SurfacePassElement.cpp b/src/render/pass/SurfacePassElement.cpp
index d3c4e3fc..eef3c11b 100644
--- a/src/render/pass/SurfacePassElement.cpp
+++ b/src/render/pass/SurfacePassElement.cpp
@@ -18,6 +18,9 @@ CSurfacePassElement::CSurfacePassElement(const CSurfacePassElement::SRenderData&
}
CBox CSurfacePassElement::getTexBox() {
+ if (m_texBoxCached)
+ return m_cachedTexBox;
+
const double outputX = -m_data.pMonitor->m_position.x, outputY = -m_data.pMonitor->m_position.y;
const auto INTERACTIVERESIZEINPROGRESS = m_data.pWindow && g_layoutManager->dragController()->target() && g_layoutManager->dragController()->mode() == MBIND_RESIZE;
@@ -69,7 +72,10 @@ CBox CSurfacePassElement::getTexBox() {
windowBox.height = m_data.h - m_data.localPos.y;
}
- return windowBox;
+ m_cachedTexBox = windowBox;
+ m_texBoxCached = true;
+
+ return m_cachedTexBox;
}
bool CSurfacePassElement::needsLiveBlur() {
diff --git a/src/render/pass/SurfacePassElement.hpp b/src/render/pass/SurfacePassElement.hpp
index ebf5561c..26e14890 100644
--- a/src/render/pass/SurfacePassElement.hpp
+++ b/src/render/pass/SurfacePassElement.hpp
@@ -73,4 +73,8 @@ class CSurfacePassElement : public IPassElement {
SRenderData m_data;
CBox getTexBox();
+
+ private:
+ bool m_texBoxCached = false;
+ CBox m_cachedTexBox = {};
};