From 7ea4fbf0ba034d947339b3a94a10da022eca1988 Mon Sep 17 00:00:00 2001 From: Lee Bousfield Date: Thu, 20 Mar 2025 06:08:47 -0500 Subject: [PATCH] types: Upgrade buffer ref from WP to SP (#9677) --- src/helpers/Monitor.cpp | 4 ++-- src/protocols/core/Compositor.cpp | 4 ++-- src/protocols/types/Buffer.hpp | 2 +- src/render/Renderer.cpp | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp index 2af548d2..30c15e4e 100644 --- a/src/helpers/Monitor.cpp +++ b/src/helpers/Monitor.cpp @@ -1342,7 +1342,7 @@ bool CMonitor::attemptDirectScanout() { const auto PSURFACE = g_pXWaylandManager->getWindowSurface(PCANDIDATE); - if (!PSURFACE || !PSURFACE->current.texture || !PSURFACE->current.buffer || PSURFACE->current.buffer->buffer.expired()) + if (!PSURFACE || !PSURFACE->current.texture || !PSURFACE->current.buffer) return false; if (PSURFACE->current.bufferSize != vecPixelSize || PSURFACE->current.transform != transform) @@ -1355,7 +1355,7 @@ bool CMonitor::attemptDirectScanout() { Debug::log(TRACE, "attemptDirectScanout: surface {:x} passed, will attempt, buffer {}", (uintptr_t)PSURFACE.get(), (uintptr_t)PSURFACE->current.buffer->buffer.get()); - auto PBUFFER = PSURFACE->current.buffer->buffer.lock(); + auto PBUFFER = PSURFACE->current.buffer->buffer; if (PBUFFER == output->state->state().buffer) { if (scanoutNeedsCursorUpdate) { diff --git a/src/protocols/core/Compositor.cpp b/src/protocols/core/Compositor.cpp index a3576c7e..e922c93e 100644 --- a/src/protocols/core/Compositor.cpp +++ b/src/protocols/core/Compositor.cpp @@ -440,7 +440,7 @@ void CWLSurfaceResource::commitPendingState(SSurfaceState& state) { if (current.texture) current.texture->m_eTransform = wlTransformToHyprutils(current.transform); - if (current.buffer && current.buffer->buffer) { + if (current.buffer) { const auto DAMAGE = accumulateCurrentBufferDamage(); current.buffer->buffer->update(DAMAGE); @@ -478,7 +478,7 @@ void CWLSurfaceResource::commitPendingState(SSurfaceState& state) { } void CWLSurfaceResource::updateCursorShm(CRegion damage) { - auto buf = current.buffer ? current.buffer->buffer : WP{}; + auto buf = current.buffer ? current.buffer->buffer : SP{}; if UNLIKELY (!buf) return; diff --git a/src/protocols/types/Buffer.hpp b/src/protocols/types/Buffer.hpp index 287f8a24..a0b4e9a8 100644 --- a/src/protocols/types/Buffer.hpp +++ b/src/protocols/types/Buffer.hpp @@ -45,7 +45,7 @@ class CHLBufferReference { CHLBufferReference(SP buffer, SP surface); ~CHLBufferReference(); - WP buffer; + SP buffer; UP acquire; UP release; diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index b76d67e5..88f1f95a 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -1531,7 +1531,7 @@ bool CHyprRenderer::commitPendingAndDoExplicitSync(PHLMONITOR pMonitor) { Debug::log(TRACE, "Explicit: can't add sync, monitor has no EGLSync"); else { for (auto const& e : explicitPresented) { - if (!e->current.buffer || !e->current.buffer->buffer || !e->current.buffer->buffer->syncReleaser) + if (!e->current.buffer || !e->current.buffer->buffer->syncReleaser) continue; e->current.buffer->buffer->syncReleaser->addReleaseSync(pMonitor->eglSync);