summaryrefslogtreecommitdiff
path: root/src/managers/PointerManager.cpp
diff options
context:
space:
mode:
authorVaxry <43317083+vaxerski@users.noreply.github.com>2024-12-22 17:12:09 +0100
committerGitHub <noreply@github.com>2024-12-22 17:12:09 +0100
commite536b02248f370971716b744968776f6880528be (patch)
tree5e5755b7894eb44f9259cfe0e1d97899148a8a60 /src/managers/PointerManager.cpp
parent1cc1a46c2e154a27750b81307040d3bf7ff0f64f (diff)
Renderer: rewrite render scheduling (#8683)
This rewrites renderer scheduling. Occlusion is now unified in a new Pass type.
Diffstat (limited to 'src/managers/PointerManager.cpp')
-rw-r--r--src/managers/PointerManager.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/managers/PointerManager.cpp b/src/managers/PointerManager.cpp
index 3e3ece98..bc166825 100644
--- a/src/managers/PointerManager.cpp
+++ b/src/managers/PointerManager.cpp
@@ -8,6 +8,7 @@
#include "../protocols/core/Compositor.hpp"
#include "../protocols/core/Seat.hpp"
#include "eventLoop/EventLoopManager.hpp"
+#include "../render/pass/TexPassElement.hpp"
#include "SeatManager.hpp"
#include <cstring>
#include <gbm.h>
@@ -551,7 +552,15 @@ void CPointerManager::renderSoftwareCursorsFor(PHLMONITOR pMonitor, timespec* no
box.x = std::round(box.x);
box.y = std::round(box.y);
- g_pHyprOpenGL->renderTextureWithDamage(texture, &box, &damage, 1.F, 0, false, false, currentCursorImage.waitTimeline, currentCursorImage.waitPoint);
+ CTexPassElement::SRenderData data;
+ data.tex = texture;
+ data.box = box.round();
+ data.syncTimeline = currentCursorImage.waitTimeline;
+ data.syncPoint = currentCursorImage.waitPoint;
+ g_pHyprRenderer->m_sRenderPass.add(makeShared<CTexPassElement>(data));
+
+ currentCursorImage.waitTimeline.reset();
+ currentCursorImage.waitPoint = 0;
if (currentCursorImage.surface)
currentCursorImage.surface->resource()->frame(now);