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.
This commit is contained in:
parent
c75f85098c
commit
bb958a9e13
10 changed files with 17 additions and 12 deletions
|
|
@ -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)));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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)));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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)) {
|
||||
;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ class CTexPassElement : public IPassElement {
|
|||
};
|
||||
|
||||
CTexPassElement(const SRenderData& data);
|
||||
CTexPassElement(SRenderData&& data);
|
||||
virtual ~CTexPassElement() = default;
|
||||
|
||||
virtual void draw(const CRegion& damage);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue