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
|
|
@ -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)));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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