diff options
| author | Vaxry <43317083+vaxerski@users.noreply.github.com> | 2025-04-11 00:34:50 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-11 00:34:50 +0200 |
| commit | 382f0f23f144e11bdccac6c5d3c1ed415b4b1855 (patch) | |
| tree | e21c660a7f266dc46fa095f8c2adce1ce5652192 /src/render/OpenGL.cpp | |
| parent | b83c9f5c6f8404904d86a607a37c5ebd2703dcae (diff) | |
pass: revert "remove renderer finalDamage since it's unused (#9996)" (#10039)
This reverts commit 0a7e2cb152a11db35aa134fad0919bc939f16bae.
Diffstat (limited to 'src/render/OpenGL.cpp')
| -rw-r--r-- | src/render/OpenGL.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
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<CRegion> 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<CRegion> 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 |
