diff options
| author | Tom Englund <tomenglund26@gmail.com> | 2025-07-10 10:44:59 +0200 |
|---|---|---|
| committer | Vaxry <43317083+vaxerski@users.noreply.github.com> | 2025-07-10 14:09:00 +0200 |
| commit | f5af40afce9d453dbf2e5bab739520e1cb80ab12 (patch) | |
| tree | 05d4d51d900e07972c1739c6c20fa3ff07201eaf /src/render | |
| parent | 6375e471f33bf1a008a005e963c57a12c7ff0e94 (diff) | |
renderpass: use unique ptr instead of shared ptr
lets use unique ptrs instead of refcounting shared ptr when its not
needed, use rvalue reference to construct in vector directly.
Diffstat (limited to 'src/render')
| -rw-r--r-- | src/render/OpenGL.cpp | 8 | ||||
| -rw-r--r-- | src/render/Renderer.cpp | 40 | ||||
| -rw-r--r-- | src/render/decorations/CHyprBorderDecoration.cpp | 2 | ||||
| -rw-r--r-- | src/render/decorations/CHyprDropShadowDecoration.cpp | 2 | ||||
| -rw-r--r-- | src/render/decorations/CHyprGroupBarDecoration.cpp | 14 | ||||
| -rw-r--r-- | src/render/pass/ClearPassElement.hpp | 2 | ||||
| -rw-r--r-- | src/render/pass/Pass.cpp | 4 | ||||
| -rw-r--r-- | src/render/pass/Pass.hpp | 6 | ||||
| -rw-r--r-- | src/render/pass/ShadowPassElement.cpp | 2 | ||||
| -rw-r--r-- | src/render/pass/ShadowPassElement.hpp | 2 |
10 files changed, 41 insertions, 41 deletions
diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp index 25f5e291..65d0cf38 100644 --- a/src/render/OpenGL.cpp +++ b/src/render/OpenGL.cpp @@ -2120,7 +2120,7 @@ void CHyprOpenGLImpl::preWindowPass() { if (!preBlurQueued()) return; - g_pHyprRenderer->m_renderPass.add(makeShared<CPreBlurElement>()); + g_pHyprRenderer->m_renderPass.add(makeUnique<CPreBlurElement>()); } bool CHyprOpenGLImpl::preBlurQueued() { @@ -2545,7 +2545,7 @@ void CHyprOpenGLImpl::renderMirrored() { if (!PFB->isAllocated() || !PFB->getTexture()) return; - g_pHyprRenderer->m_renderPass.add(makeShared<CClearPassElement>(CClearPassElement::SClearData{CHyprColor(0, 0, 0, 0)})); + g_pHyprRenderer->m_renderPass.add(makeUnique<CClearPassElement>(CClearPassElement::SClearData{CHyprColor(0, 0, 0, 0)})); CTexPassElement::SRenderData data; data.tex = PFB->getTexture(); @@ -2556,7 +2556,7 @@ void CHyprOpenGLImpl::renderMirrored() { .transform(wlTransformToHyprutils(invertTransform(mirrored->m_transform))) .translate(-monitor->m_transformedSize / 2.0); - g_pHyprRenderer->m_renderPass.add(makeShared<CTexPassElement>(std::move(data))); + g_pHyprRenderer->m_renderPass.add(makeUnique<CTexPassElement>(std::move(data))); } void CHyprOpenGLImpl::renderSplash(cairo_t* const CAIRO, cairo_surface_t* const CAIROSURFACE, double offsetY, const Vector2D& size) { @@ -2946,7 +2946,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>(std::move(data))); + g_pHyprRenderer->m_renderPass.add(makeUnique<CTexPassElement>(std::move(data))); } } diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index da52eaef..78b6fc07 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -529,7 +529,7 @@ void CHyprRenderer::renderWindow(PHLWINDOW pWindow, PHLMONITOR pMonitor, const T CRectPassElement::SRectData data; data.color = CHyprColor(0, 0, 0, *PDIMAROUND * fullAlpha); data.box = monbox; - m_renderPass.add(makeShared<CRectPassElement>(data)); + m_renderPass.add(makeUnique<CRectPassElement>(data)); } renderdata.pos.x += pWindow->m_floatingOffset.x; @@ -585,7 +585,7 @@ void CHyprRenderer::renderWindow(PHLWINDOW pWindow, PHLMONITOR pMonitor, const T data.blur = true; data.blurA = renderdata.fadeAlpha; data.xray = g_pHyprOpenGL->shouldUseNewBlurOptimizations(nullptr, pWindow); - m_renderPass.add(makeShared<CRectPassElement>(data)); + m_renderPass.add(makeUnique<CRectPassElement>(data)); renderdata.blur = false; } @@ -596,7 +596,7 @@ void CHyprRenderer::renderWindow(PHLWINDOW pWindow, PHLMONITOR pMonitor, const T renderdata.texture = s->m_current.texture; renderdata.surface = s; renderdata.mainSurface = s == pWindow->m_wlSurface->resource(); - m_renderPass.add(makeShared<CSurfacePassElement>(renderdata)); + m_renderPass.add(makeUnique<CSurfacePassElement>(renderdata)); renderdata.surfaceCounter++; }, nullptr); @@ -664,7 +664,7 @@ void CHyprRenderer::renderWindow(PHLWINDOW pWindow, PHLMONITOR pMonitor, const T renderdata.texture = s->m_current.texture; renderdata.surface = s; renderdata.mainSurface = false; - m_renderPass.add(makeShared<CSurfacePassElement>(renderdata)); + m_renderPass.add(makeUnique<CSurfacePassElement>(renderdata)); renderdata.surfaceCounter++; }, data); @@ -703,7 +703,7 @@ void CHyprRenderer::renderLayer(PHLLS pLayer, PHLMONITOR pMonitor, const Time::s CRectPassElement::SRectData data; data.box = {0, 0, g_pHyprOpenGL->m_renderData.pMonitor->m_transformedSize.x, g_pHyprOpenGL->m_renderData.pMonitor->m_transformedSize.y}; data.color = CHyprColor(0, 0, 0, *PDIMAROUND * pLayer->m_alpha->value()); - m_renderPass.add(makeShared<CRectPassElement>(data)); + m_renderPass.add(makeUnique<CRectPassElement>(data)); } if (pLayer->m_fadingOut) { @@ -741,7 +741,7 @@ void CHyprRenderer::renderLayer(PHLLS pLayer, PHLMONITOR pMonitor, const Time::s renderdata.texture = s->m_current.texture; renderdata.surface = s; renderdata.mainSurface = s == pLayer->m_surface->resource(); - m_renderPass.add(makeShared<CSurfacePassElement>(renderdata)); + m_renderPass.add(makeUnique<CSurfacePassElement>(renderdata)); renderdata.surfaceCounter++; }, &renderdata); @@ -762,7 +762,7 @@ void CHyprRenderer::renderLayer(PHLLS pLayer, PHLMONITOR pMonitor, const Time::s renderdata.texture = popup->m_wlSurface->resource()->m_current.texture; renderdata.surface = popup->m_wlSurface->resource(); renderdata.mainSurface = false; - m_renderPass.add(makeShared<CSurfacePassElement>(renderdata)); + m_renderPass.add(makeUnique<CSurfacePassElement>(renderdata)); renderdata.surfaceCounter++; }, &renderdata); @@ -797,7 +797,7 @@ void CHyprRenderer::renderIMEPopup(CInputPopup* pPopup, PHLMONITOR pMonitor, con renderdata.texture = s->m_current.texture; renderdata.surface = s; renderdata.mainSurface = s == SURF; - m_renderPass.add(makeShared<CSurfacePassElement>(renderdata)); + m_renderPass.add(makeUnique<CSurfacePassElement>(renderdata)); renderdata.surfaceCounter++; }, &renderdata); @@ -818,7 +818,7 @@ void CHyprRenderer::renderSessionLockSurface(WP<SSessionLockSurface> pSurface, P renderdata.texture = s->m_current.texture; renderdata.surface = s; renderdata.mainSurface = s == pSurface->surface->surface(); - m_renderPass.add(makeShared<CSurfacePassElement>(renderdata)); + m_renderPass.add(makeUnique<CSurfacePassElement>(renderdata)); renderdata.surfaceCounter++; }, &renderdata); @@ -851,11 +851,11 @@ void CHyprRenderer::renderAllClientsForWorkspace(PHLMONITOR pMonitor, PHLWORKSPA RENDERMODIFDATA.modifs.emplace_back(std::make_pair<>(SRenderModifData::eRenderModifType::RMOD_TYPE_SCALE, scale)); if (!RENDERMODIFDATA.modifs.empty()) - g_pHyprRenderer->m_renderPass.add(makeShared<CRendererHintsPassElement>(CRendererHintsPassElement::SData{RENDERMODIFDATA})); + g_pHyprRenderer->m_renderPass.add(makeUnique<CRendererHintsPassElement>(CRendererHintsPassElement::SData{RENDERMODIFDATA})); CScopeGuard x([&RENDERMODIFDATA] { if (!RENDERMODIFDATA.modifs.empty()) { - g_pHyprRenderer->m_renderPass.add(makeShared<CRendererHintsPassElement>(CRendererHintsPassElement::SData{SRenderModifData{}})); + g_pHyprRenderer->m_renderPass.add(makeUnique<CRendererHintsPassElement>(CRendererHintsPassElement::SData{SRenderModifData{}})); } }); @@ -863,7 +863,7 @@ void CHyprRenderer::renderAllClientsForWorkspace(PHLMONITOR pMonitor, PHLWORKSPA // allow rendering without a workspace. In this case, just render layers. if (*PRENDERTEX /* inverted cfg flag */) - m_renderPass.add(makeShared<CClearPassElement>(CClearPassElement::SClearData{CHyprColor(*PBACKGROUNDCOLOR)})); + m_renderPass.add(makeUnique<CClearPassElement>(CClearPassElement::SClearData{CHyprColor(*PBACKGROUNDCOLOR)})); else g_pHyprOpenGL->clearWithTex(); // will apply the hypr "wallpaper" @@ -888,7 +888,7 @@ void CHyprRenderer::renderAllClientsForWorkspace(PHLMONITOR pMonitor, PHLWORKSPA if (!*PXPMODE) { if (*PRENDERTEX /* inverted cfg flag */) - m_renderPass.add(makeShared<CClearPassElement>(CClearPassElement::SClearData{CHyprColor(*PBACKGROUNDCOLOR)})); + m_renderPass.add(makeUnique<CClearPassElement>(CClearPassElement::SClearData{CHyprColor(*PBACKGROUNDCOLOR)})); else g_pHyprOpenGL->clearWithTex(); // will apply the hypr "wallpaper" @@ -919,7 +919,7 @@ void CHyprRenderer::renderAllClientsForWorkspace(PHLMONITOR pMonitor, PHLWORKSPA data.box = {translate.x, translate.y, pMonitor->m_transformedSize.x * scale, pMonitor->m_transformedSize.y * scale}; data.color = CHyprColor(0, 0, 0, *PDIMSPECIAL * (ANIMOUT ? (1.0 - SPECIALANIMPROGRS) : SPECIALANIMPROGRS)); - g_pHyprRenderer->m_renderPass.add(makeShared<CRectPassElement>(data)); + g_pHyprRenderer->m_renderPass.add(makeUnique<CRectPassElement>(data)); } if (*PBLURSPECIAL && *PBLUR) { @@ -929,7 +929,7 @@ void CHyprRenderer::renderAllClientsForWorkspace(PHLMONITOR pMonitor, PHLWORKSPA data.blur = true; data.blurA = (ANIMOUT ? (1.0 - SPECIALANIMPROGRS) : SPECIALANIMPROGRS); - g_pHyprRenderer->m_renderPass.add(makeShared<CRectPassElement>(data)); + g_pHyprRenderer->m_renderPass.add(makeUnique<CRectPassElement>(data)); } } @@ -1374,7 +1374,7 @@ void CHyprRenderer::renderMonitor(PHLMONITOR pMonitor, bool commit) { CRectPassElement::SRectData data; data.box = {0, 0, pMonitor->m_transformedSize.x, pMonitor->m_transformedSize.y}; data.color = CHyprColor(1.0, 0.0, 1.0, 100.0 / 255.0); - m_renderPass.add(makeShared<CRectPassElement>(data)); + m_renderPass.add(makeUnique<CRectPassElement>(data)); damageBlinkCleanup = 1; } else if (*PDAMAGEBLINK) { damageBlinkCleanup++; @@ -2474,7 +2474,7 @@ void CHyprRenderer::renderSnapshot(PHLWINDOW pWindow) { data.box = {0, 0, g_pHyprOpenGL->m_renderData.pMonitor->m_pixelSize.x, g_pHyprOpenGL->m_renderData.pMonitor->m_pixelSize.y}; data.color = CHyprColor(0, 0, 0, *PDIMAROUND * pWindow->m_alpha->value()); - m_renderPass.add(makeShared<CRectPassElement>(data)); + m_renderPass.add(makeUnique<CRectPassElement>(data)); } if (shouldBlur(pWindow)) { @@ -2487,7 +2487,7 @@ void CHyprRenderer::renderSnapshot(PHLWINDOW pWindow) { data.roundingPower = pWindow->roundingPower(); data.xray = pWindow->m_windowData.xray.valueOr(false); - m_renderPass.add(makeShared<CRectPassElement>(std::move(data))); + m_renderPass.add(makeUnique<CRectPassElement>(std::move(data))); } CTexPassElement::SRenderData data; @@ -2497,7 +2497,7 @@ void CHyprRenderer::renderSnapshot(PHLWINDOW pWindow) { data.a = pWindow->m_alpha->value(); data.damage = fakeDamage; - m_renderPass.add(makeShared<CTexPassElement>(std::move(data))); + m_renderPass.add(makeUnique<CTexPassElement>(std::move(data))); } void CHyprRenderer::renderSnapshot(PHLLS pLayer) { @@ -2539,7 +2539,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>(std::move(data))); + m_renderPass.add(makeUnique<CTexPassElement>(std::move(data))); } bool CHyprRenderer::shouldBlur(PHLLS ls) { diff --git a/src/render/decorations/CHyprBorderDecoration.cpp b/src/render/decorations/CHyprBorderDecoration.cpp index b34c9243..1ba60f0c 100644 --- a/src/render/decorations/CHyprBorderDecoration.cpp +++ b/src/render/decorations/CHyprBorderDecoration.cpp @@ -89,7 +89,7 @@ void CHyprBorderDecoration::draw(PHLMONITOR pMonitor, float const& a) { data.lerp = m_window->m_borderFadeAnimationProgress->value(); } - g_pHyprRenderer->m_renderPass.add(makeShared<CBorderPassElement>(data)); + g_pHyprRenderer->m_renderPass.add(makeUnique<CBorderPassElement>(data)); } eDecorationType CHyprBorderDecoration::getDecorationType() { diff --git a/src/render/decorations/CHyprDropShadowDecoration.cpp b/src/render/decorations/CHyprDropShadowDecoration.cpp index ee52b4f4..fa77a343 100644 --- a/src/render/decorations/CHyprDropShadowDecoration.cpp +++ b/src/render/decorations/CHyprDropShadowDecoration.cpp @@ -90,7 +90,7 @@ void CHyprDropShadowDecoration::draw(PHLMONITOR pMonitor, float const& a) { CShadowPassElement::SShadowData data; data.deco = this; data.a = a; - g_pHyprRenderer->m_renderPass.add(makeShared<CShadowPassElement>(data)); + g_pHyprRenderer->m_renderPass.add(makeUnique<CShadowPassElement>(data)); } void CHyprDropShadowDecoration::render(PHLMONITOR pMonitor, float const& a) { diff --git a/src/render/decorations/CHyprGroupBarDecoration.cpp b/src/render/decorations/CHyprGroupBarDecoration.cpp index e577658a..df8731be 100644 --- a/src/render/decorations/CHyprGroupBarDecoration.cpp +++ b/src/render/decorations/CHyprGroupBarDecoration.cpp @@ -172,21 +172,21 @@ void CHyprGroupBarDecoration::draw(PHLMONITOR pMonitor, float const& a) { double first = rect.w - (*PROUNDING * 2); rectdata.round = *PROUNDING; rectdata.clipBox = CBox{rect.pos() - Vector2D{PADDING, 0.F}, Vector2D{first + PADDING, rect.h}}; - g_pHyprRenderer->m_renderPass.add(makeShared<CRectPassElement>(rectdata)); + g_pHyprRenderer->m_renderPass.add(makeUnique<CRectPassElement>(rectdata)); rectdata.round = 0; rectdata.clipBox = CBox{rect.pos() + Vector2D{first, 0.F}, Vector2D{rect.w - first + PADDING, rect.h}}; } else if (i == barsToDraw - 1) { double first = *PROUNDING * 2; rectdata.round = 0; rectdata.clipBox = CBox{rect.pos() - Vector2D{PADDING, 0.F}, Vector2D{first + PADDING, rect.h}}; - g_pHyprRenderer->m_renderPass.add(makeShared<CRectPassElement>(rectdata)); + g_pHyprRenderer->m_renderPass.add(makeUnique<CRectPassElement>(rectdata)); rectdata.round = *PROUNDING; rectdata.clipBox = CBox{rect.pos() + Vector2D{first, 0.F}, Vector2D{rect.w - first + PADDING, rect.h}}; } } else rectdata.round = *PROUNDING; } - g_pHyprRenderer->m_renderPass.add(makeShared<CRectPassElement>(rectdata)); + g_pHyprRenderer->m_renderPass.add(makeUnique<CRectPassElement>(rectdata)); } rect = {ASSIGNEDBOX.x + xoff - pMonitor->m_position.x + m_window->m_floatingOffset.x, @@ -212,21 +212,21 @@ void CHyprGroupBarDecoration::draw(PHLMONITOR pMonitor, float const& a) { double first = rect.w - (*PGRADIENTROUNDING * 2); data.round = *PGRADIENTROUNDING; data.clipBox = CBox{rect.pos() - Vector2D{PADDING, 0.F}, Vector2D{first + PADDING, rect.h}}; - g_pHyprRenderer->m_renderPass.add(makeShared<CTexPassElement>(data)); + g_pHyprRenderer->m_renderPass.add(makeUnique<CTexPassElement>(data)); data.round = 0; data.clipBox = CBox{rect.pos() + Vector2D{first, 0.F}, Vector2D{rect.w - first + PADDING, rect.h}}; } else if (i == barsToDraw - 1) { double first = *PGRADIENTROUNDING * 2; data.round = 0; data.clipBox = CBox{rect.pos() - Vector2D{PADDING, 0.F}, Vector2D{first + PADDING, rect.h}}; - g_pHyprRenderer->m_renderPass.add(makeShared<CTexPassElement>(data)); + g_pHyprRenderer->m_renderPass.add(makeUnique<CTexPassElement>(data)); data.round = *PGRADIENTROUNDING; data.clipBox = CBox{rect.pos() + Vector2D{first, 0.F}, Vector2D{rect.w - first + PADDING, rect.h}}; } } else data.round = *PGRADIENTROUNDING; } - g_pHyprRenderer->m_renderPass.add(makeShared<CTexPassElement>(data)); + g_pHyprRenderer->m_renderPass.add(makeUnique<CTexPassElement>(data)); } } @@ -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>(std::move(data))); + g_pHyprRenderer->m_renderPass.add(makeUnique<CTexPassElement>(std::move(data))); } } diff --git a/src/render/pass/ClearPassElement.hpp b/src/render/pass/ClearPassElement.hpp index ff161551..067b7094 100644 --- a/src/render/pass/ClearPassElement.hpp +++ b/src/render/pass/ClearPassElement.hpp @@ -22,4 +22,4 @@ class CClearPassElement : public IPassElement { private: SClearData m_data; -};
\ No newline at end of file +}; diff --git a/src/render/pass/Pass.cpp b/src/render/pass/Pass.cpp index 32296ad7..4ad1d444 100644 --- a/src/render/pass/Pass.cpp +++ b/src/render/pass/Pass.cpp @@ -18,8 +18,8 @@ bool CRenderPass::single() const { return m_passElements.size() == 1; } -void CRenderPass::add(SP<IPassElement> el) { - m_passElements.emplace_back(makeShared<SPassElementData>(CRegion{}, el)); +void CRenderPass::add(UP<IPassElement>&& el) { + m_passElements.emplace_back(makeUnique<SPassElementData>(CRegion{}, std::move(el))); } void CRenderPass::simplify() { diff --git a/src/render/pass/Pass.hpp b/src/render/pass/Pass.hpp index ac564689..435b5301 100644 --- a/src/render/pass/Pass.hpp +++ b/src/render/pass/Pass.hpp @@ -11,7 +11,7 @@ class CRenderPass { bool empty() const; bool single() const; - void add(SP<IPassElement> elem); + void add(UP<IPassElement>&& elem); void clear(); void removeAllOfType(const std::string& type); @@ -24,11 +24,11 @@ class CRenderPass { struct SPassElementData { CRegion elementDamage; - SP<IPassElement> element; + UP<IPassElement> element; bool discard = false; }; - std::vector<SP<SPassElementData>> m_passElements; + std::vector<UP<SPassElementData>> m_passElements; void simplify(); float oneBlurRadius(); diff --git a/src/render/pass/ShadowPassElement.cpp b/src/render/pass/ShadowPassElement.cpp index cccace7e..45ad18c8 100644 --- a/src/render/pass/ShadowPassElement.cpp +++ b/src/render/pass/ShadowPassElement.cpp @@ -16,4 +16,4 @@ bool CShadowPassElement::needsLiveBlur() { bool CShadowPassElement::needsPrecomputeBlur() { return false; -}
\ No newline at end of file +} diff --git a/src/render/pass/ShadowPassElement.hpp b/src/render/pass/ShadowPassElement.hpp index 7e85342a..028ac88c 100644 --- a/src/render/pass/ShadowPassElement.hpp +++ b/src/render/pass/ShadowPassElement.hpp @@ -23,4 +23,4 @@ class CShadowPassElement : public IPassElement { private: SShadowData m_data; -};
\ No newline at end of file +}; |
