From 8ac7e8d169cd5818ebfb25a2820efa2066bff2a5 Mon Sep 17 00:00:00 2001 From: Matias Date: Thu, 17 Jul 2025 19:08:58 +0200 Subject: [PATCH] hack: force all windows to be slightly translucent always. this is bad!! --- include/renderpasses.h | 8 -------- src/main.cpp | 4 ++-- src/renderpasses.cpp | 7 ++++++- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/include/renderpasses.h b/include/renderpasses.h index 0e5a5b6..a42f0ef 100644 --- a/include/renderpasses.h +++ b/include/renderpasses.h @@ -31,10 +31,6 @@ class CBindOwnFramebufferPassElement final: public IPassElement { return std::nullopt; } - CRegion opaqueRegion() override { - return CRegion {}; - } - private: CFramebuffer* m_pFramebuffer; }; @@ -71,10 +67,6 @@ class CRenderWobblyWindowPassElement final: public IPassElement { std::optional boundingBox() override; - CRegion opaqueRegion() override { - return CRegion {}; - } - private: CFramebuffer* m_pOldFramebuffer; PHLWINDOWREF m_pWindow; diff --git a/src/main.cpp b/src/main.cpp index abebd36..0bbb231 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -174,7 +174,7 @@ void hkRenderWindow( pWindow->m_floatingOffset -= Vector2D {windowBox.x, windowBox.y}; // HACK: otherwise renderWindow will set an opaque region at top-left - pWindow->m_alpha->setValueAndWarp(pWindow->m_alpha->goal() - 0.001f); + pWindow->m_alpha->setValueAndWarp(0.999f); pRenderer->m_renderPass.add(makeUnique(&windowFB)); } @@ -195,7 +195,7 @@ void hkRenderWindow( pWindow->m_floatingOffset += Vector2D {windowBox.x, windowBox.y}; // HACK: this might interfere with anims, but it's all I got - pWindow->m_alpha->setValueAndWarp(pWindow->m_alpha->goal() + 0.001f); + // pWindow->m_alpha->setValueAndWarp(pWindow->m_alpha->goal() + 0.001f); pRenderer->m_renderPass.add( makeUnique(pOldFramebuffer, pWindow) diff --git a/src/renderpasses.cpp b/src/renderpasses.cpp index 79f95fc..ba69699 100644 --- a/src/renderpasses.cpp +++ b/src/renderpasses.cpp @@ -208,5 +208,10 @@ void CRenderWobblyWindowPassElement::draw(const CRegion& damage) { } std::optional CRenderWobblyWindowPassElement::boundingBox() { - return g_pHyprOpenGL->m_renderData.pMonitor->logicalBox(); + auto ret = m_pWindow->getFullWindowBoundingBox(); + const auto wobbleBox = g_wobblyWindows.at(PHLWINDOWREF {m_pWindow}).getBox(); + ret.scale(Vector2D {wobbleBox.width, wobbleBox.height}); + ret.translate(Vector2D {wobbleBox.x, wobbleBox.y}); + + return ret; }