summaryrefslogtreecommitdiff
path: root/src/render/Renderer.hpp
diff options
context:
space:
mode:
authorIkalco <73481042+ikalco@users.noreply.github.com>2025-04-30 11:35:25 -0500
committerGitHub <noreply@github.com>2025-04-30 18:35:25 +0200
commit2ee5118d7a4a59d3ccfaed305bfc05c79cea7637 (patch)
tree7c113e64071edbc260060df7e60af9c915b3986a /src/render/Renderer.hpp
parent5d005f11fa218d26ed2cf6ce75cd9aac9c2c00e5 (diff)
render: properly release rendered buffers (#9807)
* cleanup eglSync * properly release buffers in renderer * add renderingDoneCallback and use it in screencopy * use static constructor for CEGLSync
Diffstat (limited to 'src/render/Renderer.hpp')
-rw-r--r--src/render/Renderer.hpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/render/Renderer.hpp b/src/render/Renderer.hpp
index 553965a4..37e1e91f 100644
--- a/src/render/Renderer.hpp
+++ b/src/render/Renderer.hpp
@@ -87,24 +87,24 @@ class CHyprRenderer {
// if RENDER_MODE_NORMAL, provided damage will be written to.
// otherwise, it will be the one used.
bool beginRender(PHLMONITOR pMonitor, CRegion& damage, eRenderMode mode = RENDER_MODE_NORMAL, SP<IHLBuffer> buffer = {}, CFramebuffer* fb = nullptr, bool simple = false);
- void endRender();
+ void endRender(const std::function<void()>& renderingDoneCallback = {});
bool m_bBlockSurfaceFeedback = false;
bool m_bRenderingSnapshot = false;
- PHLMONITORREF m_pMostHzMonitor;
- bool m_bDirectScanoutBlocked = false;
+ PHLMONITORREF m_pMostHzMonitor;
+ bool m_bDirectScanoutBlocked = false;
- void setSurfaceScanoutMode(SP<CWLSurfaceResource> surface, PHLMONITOR monitor); // nullptr monitor resets
- void initiateManualCrash();
+ void setSurfaceScanoutMode(SP<CWLSurfaceResource> surface, PHLMONITOR monitor); // nullptr monitor resets
+ void initiateManualCrash();
- bool m_bCrashingInProgress = false;
- float m_fCrashingDistort = 0.5f;
- wl_event_source* m_pCrashingLoop = nullptr;
- wl_event_source* m_pCursorTicker = nullptr;
+ bool m_bCrashingInProgress = false;
+ float m_fCrashingDistort = 0.5f;
+ wl_event_source* m_pCrashingLoop = nullptr;
+ wl_event_source* m_pCursorTicker = nullptr;
- CTimer m_tRenderTimer;
+ CTimer m_tRenderTimer;
- std::vector<SP<CWLSurfaceResource>> explicitPresented;
+ std::vector<CHLBufferReference> usedAsyncBuffers;
struct {
int hotspotX = 0;