summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Englund <tomenglund26@gmail.com>2026-01-18 13:51:14 +0100
committerGitHub <noreply@github.com>2026-01-18 13:51:14 +0100
commit0896775f1bbb44e3d60ca60571fc524aa80ce606 (patch)
tree451080737a4f9ba1d9be98b6e24421bacbd5e56e
parentc99eb23869da2b80e3613a886aa1b99851367a3c (diff)
pointermgr: remove onRenderBufferDestroy (#13008)
set the damage to cursor plane size instead of INT16_MAX and remove onRenderbufferDestroy, renderbuffer already have a listener that destroys when buffer is destroyed.
-rw-r--r--src/managers/PointerManager.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/managers/PointerManager.cpp b/src/managers/PointerManager.cpp
index d2065d69..0cda153a 100644
--- a/src/managers/PointerManager.cpp
+++ b/src/managers/PointerManager.cpp
@@ -572,8 +572,9 @@ SP<Aquamarine::IBuffer> CPointerManager::renderHWCursorBuffer(SP<CPointerManager
RBO->bind();
- g_pHyprOpenGL->beginSimple(state->monitor.lock(), {0, 0, INT16_MAX, INT16_MAX}, RBO);
- g_pHyprOpenGL->clear(CHyprColor{0.F, 0.F, 0.F, 0.F});
+ const auto& damageSize = state->monitor->m_output->cursorPlaneSize();
+ g_pHyprOpenGL->beginSimple(state->monitor.lock(), {0, 0, damageSize.x, damageSize.y}, RBO);
+ g_pHyprOpenGL->clear(CHyprColor{0.F, 0.F, 0.F, 0.F}); // ensure the RBO is zero initialized.
CBox xbox = {{}, Vector2D{m_currentCursorImage.size / m_currentCursorImage.scale * state->monitor->m_scale}.round()};
Log::logger->log(Log::TRACE, "[pointer] monitor: {}, size: {}, hw buf: {}, scale: {:.2f}, monscale: {:.2f}, xbox: {}", state->monitor->m_name, m_currentCursorImage.size,
@@ -584,8 +585,6 @@ SP<Aquamarine::IBuffer> CPointerManager::renderHWCursorBuffer(SP<CPointerManager
g_pHyprOpenGL->end();
g_pHyprOpenGL->m_renderData.pMonitor.reset();
- g_pHyprRenderer->onRenderbufferDestroy(RBO.get());
-
return buf;
}