summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Englund <tomenglund26@gmail.com>2025-07-04 09:58:37 +0200
committerVaxry <43317083+vaxerski@users.noreply.github.com>2025-07-07 18:09:34 +0200
commitbb958a9e139d6ae90d45fe360287d33e229f971e (patch)
treebbfe8a1ac10a83ce18291d9deaafa4f98bc9d355 /src
parentc75f85098cfdd53744a30ea5dce24b3fd43bd9c1 (diff)
pass: overload TexPass constructor
overload it with a rvalue to allow us to move the data directly avoiding an extra copy. because SRenderData is not trivially copyable.
Diffstat (limited to 'src')
-rw-r--r--src/debug/HyprDebugOverlay.cpp2
-rw-r--r--src/debug/HyprNotificationOverlay.cpp2
-rw-r--r--src/hyprerror/HyprError.cpp2
-rw-r--r--src/managers/PointerManager.cpp2
-rw-r--r--src/protocols/core/DataDevice.cpp2
-rw-r--r--src/render/OpenGL.cpp4
-rw-r--r--src/render/Renderer.cpp6
-rw-r--r--src/render/decorations/CHyprGroupBarDecoration.cpp2
-rw-r--r--src/render/pass/TexPassElement.cpp6
-rw-r--r--src/render/pass/TexPassElement.hpp1
10 files changed, 17 insertions, 12 deletions
diff --git a/src/debug/HyprDebugOverlay.cpp b/src/debug/HyprDebugOverlay.cpp
index 45b11de9..8f79f2fe 100644
--- a/src/debug/HyprDebugOverlay.cpp
+++ b/src/debug/HyprDebugOverlay.cpp
@@ -271,5 +271,5 @@ void CHyprDebugOverlay::draw() {
CTexPassElement::SRenderData data;
data.tex = m_texture;
data.box = {0, 0, PMONITOR->m_pixelSize.x, PMONITOR->m_pixelSize.y};
- g_pHyprRenderer->m_renderPass.add(makeShared<CTexPassElement>(data));
+ g_pHyprRenderer->m_renderPass.add(makeShared<CTexPassElement>(std::move(data)));
}
diff --git a/src/debug/HyprNotificationOverlay.cpp b/src/debug/HyprNotificationOverlay.cpp
index 05a13da4..68f5e356 100644
--- a/src/debug/HyprNotificationOverlay.cpp
+++ b/src/debug/HyprNotificationOverlay.cpp
@@ -248,7 +248,7 @@ void CHyprNotificationOverlay::draw(PHLMONITOR pMonitor) {
data.box = {0, 0, MONSIZE.x, MONSIZE.y};
data.a = 1.F;
- g_pHyprRenderer->m_renderPass.add(makeShared<CTexPassElement>(data));
+ g_pHyprRenderer->m_renderPass.add(makeShared<CTexPassElement>(std::move(data)));
}
bool CHyprNotificationOverlay::hasAny() {
diff --git a/src/hyprerror/HyprError.cpp b/src/hyprerror/HyprError.cpp
index ad8a8782..be6a96b9 100644
--- a/src/hyprerror/HyprError.cpp
+++ b/src/hyprerror/HyprError.cpp
@@ -208,7 +208,7 @@ void CHyprError::draw() {
data.box = monbox;
data.a = m_fadeOpacity->value();
- g_pHyprRenderer->m_renderPass.add(makeShared<CTexPassElement>(data));
+ g_pHyprRenderer->m_renderPass.add(makeShared<CTexPassElement>(std::move(data)));
}
void CHyprError::destroy() {
diff --git a/src/managers/PointerManager.cpp b/src/managers/PointerManager.cpp
index a82be1b0..e4455486 100644
--- a/src/managers/PointerManager.cpp
+++ b/src/managers/PointerManager.cpp
@@ -631,7 +631,7 @@ void CPointerManager::renderSoftwareCursorsFor(PHLMONITOR pMonitor, const Time::
data.tex = texture;
data.box = box.round();
- g_pHyprRenderer->m_renderPass.add(makeShared<CTexPassElement>(data));
+ g_pHyprRenderer->m_renderPass.add(makeShared<CTexPassElement>(std::move(data)));
if (m_currentCursorImage.surface)
m_currentCursorImage.surface->resource()->frame(now);
diff --git a/src/protocols/core/DataDevice.cpp b/src/protocols/core/DataDevice.cpp
index ec075e8b..730113f1 100644
--- a/src/protocols/core/DataDevice.cpp
+++ b/src/protocols/core/DataDevice.cpp
@@ -814,7 +814,7 @@ void CWLDataDeviceProtocol::renderDND(PHLMONITOR pMonitor, const Time::steady_tp
CTexPassElement::SRenderData data;
data.tex = m_dnd.dndSurface->m_current.texture;
data.box = box;
- g_pHyprRenderer->m_renderPass.add(makeShared<CTexPassElement>(data));
+ g_pHyprRenderer->m_renderPass.add(makeShared<CTexPassElement>(std::move(data)));
CBox damageBox = CBox{surfacePos, m_dnd.dndSurface->m_current.size}.expand(5);
g_pHyprRenderer->damageBox(damageBox);
diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp
index dbbdde69..6b311a25 100644
--- a/src/render/OpenGL.cpp
+++ b/src/render/OpenGL.cpp
@@ -2537,7 +2537,7 @@ void CHyprOpenGLImpl::renderMirrored() {
.transform(wlTransformToHyprutils(invertTransform(mirrored->m_transform)))
.translate(-monitor->m_transformedSize / 2.0);
- g_pHyprRenderer->m_renderPass.add(makeShared<CTexPassElement>(data));
+ g_pHyprRenderer->m_renderPass.add(makeShared<CTexPassElement>(std::move(data)));
}
void CHyprOpenGLImpl::renderSplash(cairo_t* const CAIRO, cairo_surface_t* const CAIROSURFACE, double offsetY, const Vector2D& size) {
@@ -2927,7 +2927,7 @@ void CHyprOpenGLImpl::clearWithTex() {
data.box = {0, 0, m_renderData.pMonitor->m_transformedSize.x, m_renderData.pMonitor->m_transformedSize.y};
data.flipEndFrame = true;
data.tex = TEXIT->second.getTexture();
- g_pHyprRenderer->m_renderPass.add(makeShared<CTexPassElement>(data));
+ g_pHyprRenderer->m_renderPass.add(makeShared<CTexPassElement>(std::move(data)));
}
}
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index 513225cc..e85d59b5 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -2488,7 +2488,7 @@ void CHyprRenderer::renderSnapshot(PHLWINDOW pWindow) {
data.roundingPower = pWindow->roundingPower();
data.xray = pWindow->m_windowData.xray.valueOr(false);
- m_renderPass.add(makeShared<CRectPassElement>(data));
+ m_renderPass.add(makeShared<CRectPassElement>(std::move(data)));
}
CTexPassElement::SRenderData data;
@@ -2498,7 +2498,7 @@ void CHyprRenderer::renderSnapshot(PHLWINDOW pWindow) {
data.a = pWindow->m_alpha->value();
data.damage = fakeDamage;
- m_renderPass.add(makeShared<CTexPassElement>(data));
+ m_renderPass.add(makeShared<CTexPassElement>(std::move(data)));
}
void CHyprRenderer::renderSnapshot(PHLLS pLayer) {
@@ -2540,7 +2540,7 @@ void CHyprRenderer::renderSnapshot(PHLLS pLayer) {
if (SHOULD_BLUR)
data.ignoreAlpha = pLayer->m_ignoreAlpha ? pLayer->m_ignoreAlphaValue : 0.01F /* ignore the alpha 0 regions */;
- m_renderPass.add(makeShared<CTexPassElement>(data));
+ m_renderPass.add(makeShared<CTexPassElement>(std::move(data)));
}
bool CHyprRenderer::shouldBlur(PHLLS ls) {
diff --git a/src/render/decorations/CHyprGroupBarDecoration.cpp b/src/render/decorations/CHyprGroupBarDecoration.cpp
index 9a17a3fe..e577658a 100644
--- a/src/render/decorations/CHyprGroupBarDecoration.cpp
+++ b/src/render/decorations/CHyprGroupBarDecoration.cpp
@@ -256,7 +256,7 @@ void CHyprGroupBarDecoration::draw(PHLMONITOR pMonitor, float const& a) {
data.tex = titleTex;
data.box = rect;
data.a = a;
- g_pHyprRenderer->m_renderPass.add(makeShared<CTexPassElement>(data));
+ g_pHyprRenderer->m_renderPass.add(makeShared<CTexPassElement>(std::move(data)));
}
}
diff --git a/src/render/pass/TexPassElement.cpp b/src/render/pass/TexPassElement.cpp
index c4b00220..dbf40308 100644
--- a/src/render/pass/TexPassElement.cpp
+++ b/src/render/pass/TexPassElement.cpp
@@ -4,7 +4,11 @@
#include <hyprutils/utils/ScopeGuard.hpp>
using namespace Hyprutils::Utils;
-CTexPassElement::CTexPassElement(const CTexPassElement::SRenderData& data_) : m_data(data_) {
+CTexPassElement::CTexPassElement(const SRenderData& data) : m_data(data) {
+ ;
+}
+
+CTexPassElement::CTexPassElement(CTexPassElement::SRenderData&& data) : m_data(std::move(data)) {
;
}
diff --git a/src/render/pass/TexPassElement.hpp b/src/render/pass/TexPassElement.hpp
index a9206d2d..4257357e 100644
--- a/src/render/pass/TexPassElement.hpp
+++ b/src/render/pass/TexPassElement.hpp
@@ -24,6 +24,7 @@ class CTexPassElement : public IPassElement {
};
CTexPassElement(const SRenderData& data);
+ CTexPassElement(SRenderData&& data);
virtual ~CTexPassElement() = default;
virtual void draw(const CRegion& damage);