From 382f0f23f144e11bdccac6c5d3c1ed415b4b1855 Mon Sep 17 00:00:00 2001 From: Vaxry <43317083+vaxerski@users.noreply.github.com> Date: Fri, 11 Apr 2025 00:34:50 +0200 Subject: pass: revert "remove renderer finalDamage since it's unused (#9996)" (#10039) This reverts commit 0a7e2cb152a11db35aa134fad0919bc939f16bae. --- src/render/OpenGL.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/render/OpenGL.cpp') diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp index 1963a548..eaea31be 100644 --- a/src/render/OpenGL.cpp +++ b/src/render/OpenGL.cpp @@ -701,6 +701,7 @@ void CHyprOpenGLImpl::beginSimple(PHLMONITOR pMonitor, const CRegion& damage, SP initShaders(); m_RenderData.damage.set(damage); + m_RenderData.finalDamage.set(damage); m_bFakeFrame = true; @@ -714,7 +715,7 @@ void CHyprOpenGLImpl::beginSimple(PHLMONITOR pMonitor, const CRegion& damage, SP m_RenderData.simplePass = true; } -void CHyprOpenGLImpl::begin(PHLMONITOR pMonitor, const CRegion& damage_, CFramebuffer* fb) { +void CHyprOpenGLImpl::begin(PHLMONITOR pMonitor, const CRegion& damage_, CFramebuffer* fb, std::optional finalDamage) { m_RenderData.pMonitor = pMonitor; #ifndef GLES2 @@ -765,6 +766,7 @@ void CHyprOpenGLImpl::begin(PHLMONITOR pMonitor, const CRegion& damage_, CFrameb m_RenderData.pCurrentMonData->monitorMirrorFB.release(); m_RenderData.damage.set(damage_); + m_RenderData.finalDamage.set(finalDamage.value_or(damage_)); m_bFakeFrame = fb; @@ -789,7 +791,8 @@ void CHyprOpenGLImpl::end() { // end the render, copy the data to the main framebuffer if (m_bOffloadedFramebuffer) { - m_bEndFrame = true; + m_RenderData.damage = m_RenderData.finalDamage; + m_bEndFrame = true; CBox monbox = {0, 0, m_RenderData.pMonitor->vecTransformedSize.x, m_RenderData.pMonitor->vecTransformedSize.y}; @@ -860,8 +863,9 @@ void CHyprOpenGLImpl::end() { RASSERT(false, "glGetError at Opengl::end() returned GL_CONTEXT_LOST. Cannot continue until proper GPU reset handling is implemented."); } -void CHyprOpenGLImpl::setDamage(const CRegion& damage_) { +void CHyprOpenGLImpl::setDamage(const CRegion& damage_, std::optional finalDamage) { m_RenderData.damage.set(damage_); + m_RenderData.finalDamage.set(finalDamage.value_or(damage_)); } // TODO notify user if bundled shader is newer than ~/.config override -- cgit v1.2.3