diff options
| author | Tom Englund <tomenglund26@gmail.com> | 2025-07-10 12:47:21 +0200 |
|---|---|---|
| committer | Vaxry <43317083+vaxerski@users.noreply.github.com> | 2025-07-10 14:09:00 +0200 |
| commit | 37be9a8959d925bae4e5122af0ffe49cc2edda51 (patch) | |
| tree | 6c6b1d5164647f0495e3c20a59870bbe73f96e57 /src | |
| parent | f5af40afce9d453dbf2e5bab739520e1cb80ab12 (diff) | |
alphamodifier: move to unique ptrs
less refcounting, move by rvalue.
Diffstat (limited to 'src')
| -rw-r--r-- | src/protocols/AlphaModifier.cpp | 8 | ||||
| -rw-r--r-- | src/protocols/AlphaModifier.hpp | 6 |
2 files changed, 7 insertions, 7 deletions
diff --git a/src/protocols/AlphaModifier.cpp b/src/protocols/AlphaModifier.cpp index 31e5e996..24088190 100644 --- a/src/protocols/AlphaModifier.cpp +++ b/src/protocols/AlphaModifier.cpp @@ -4,7 +4,7 @@ #include "alpha-modifier-v1.hpp" #include "core/Compositor.hpp" -CAlphaModifier::CAlphaModifier(SP<CWpAlphaModifierSurfaceV1> resource, SP<CWLSurfaceResource> surface) : m_surface(surface) { +CAlphaModifier::CAlphaModifier(UP<CWpAlphaModifierSurfaceV1>&& resource, SP<CWLSurfaceResource> surface) : m_surface(surface) { setResource(std::move(resource)); } @@ -12,7 +12,7 @@ bool CAlphaModifier::good() { return m_resource->resource(); } -void CAlphaModifier::setResource(SP<CWpAlphaModifierSurfaceV1> resource) { +void CAlphaModifier::setResource(UP<CWpAlphaModifierSurfaceV1>&& resource) { m_resource = std::move(resource); if UNLIKELY (!m_resource->resource()) @@ -89,11 +89,11 @@ void CAlphaModifierProtocol::getSurface(CWpAlphaModifierV1* manager, uint32_t id manager->error(WP_ALPHA_MODIFIER_V1_ERROR_ALREADY_CONSTRUCTED, "AlphaModifier already present"); return; } else { - iter->second->setResource(makeShared<CWpAlphaModifierSurfaceV1>(manager->client(), manager->version(), id)); + iter->second->setResource(makeUnique<CWpAlphaModifierSurfaceV1>(manager->client(), manager->version(), id)); alphaModifier = iter->second.get(); } } else { - alphaModifier = m_alphaModifiers.emplace(surface, makeUnique<CAlphaModifier>(makeShared<CWpAlphaModifierSurfaceV1>(manager->client(), manager->version(), id), surface)) + alphaModifier = m_alphaModifiers.emplace(surface, makeUnique<CAlphaModifier>(makeUnique<CWpAlphaModifierSurfaceV1>(manager->client(), manager->version(), id), surface)) .first->second.get(); } diff --git a/src/protocols/AlphaModifier.hpp b/src/protocols/AlphaModifier.hpp index 99bfc2fb..8dc370a3 100644 --- a/src/protocols/AlphaModifier.hpp +++ b/src/protocols/AlphaModifier.hpp @@ -11,13 +11,13 @@ class CAlphaModifierProtocol; class CAlphaModifier { public: - CAlphaModifier(SP<CWpAlphaModifierSurfaceV1> resource_, SP<CWLSurfaceResource> surface); + CAlphaModifier(UP<CWpAlphaModifierSurfaceV1>&& resource_, SP<CWLSurfaceResource> surface); bool good(); - void setResource(SP<CWpAlphaModifierSurfaceV1> resource); + void setResource(UP<CWpAlphaModifierSurfaceV1>&& resource); private: - SP<CWpAlphaModifierSurfaceV1> m_resource; + UP<CWpAlphaModifierSurfaceV1> m_resource; WP<CWLSurfaceResource> m_surface; float m_alpha = 1.0; |
