summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2024-02-28 15:00:34 +0000
committerVaxry <vaxry@vaxry.net>2024-02-28 15:00:40 +0000
commit4bc669f9331bb66ab30bd705d09f1239bc3e83ed (patch)
tree0ffdfa24b039b601080c6a49699a8d73b779ed8a /src/render/Renderer.cpp
parentf4f3aa2e505ca1b22688fb4a32f31c4bfb851dd0 (diff)
layers: add fully featured animations
Adds configs and layerrules to handle them alas fixes #981 I have cooked
Diffstat (limited to 'src/render/Renderer.cpp')
-rw-r--r--src/render/Renderer.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index 1c3aaab0..68803a4a 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -606,15 +606,20 @@ void CHyprRenderer::renderLayer(SLayerSurface* pLayer, CMonitor* pMonitor, times
TRACY_GPU_ZONE("RenderLayer");
- SRenderData renderdata = {pMonitor, time, pLayer->geometry.x, pLayer->geometry.y};
+ const auto REALPOS = pLayer->realPosition.vec();
+ const auto REALSIZ = pLayer->realSize.vec();
+
+ SRenderData renderdata = {pMonitor, time, REALPOS.x, REALPOS.y};
renderdata.fadeAlpha = pLayer->alpha.fl();
renderdata.blur = pLayer->forceBlur;
renderdata.surface = pLayer->layerSurface->surface;
renderdata.decorate = false;
- renderdata.w = pLayer->geometry.width;
- renderdata.h = pLayer->geometry.height;
+ renderdata.w = REALSIZ.x;
+ renderdata.h = REALSIZ.y;
renderdata.blockBlurOptimization = pLayer->layer == ZWLR_LAYER_SHELL_V1_LAYER_BOTTOM || pLayer->layer == ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND;
+ g_pHyprOpenGL->m_RenderData.clipBox = CBox{0, 0, pMonitor->vecSize.x, pMonitor->vecSize.y}.scale(pMonitor->scale);
+
g_pHyprOpenGL->m_pCurrentLayer = pLayer;
if (pLayer->ignoreAlpha) {
@@ -629,7 +634,8 @@ void CHyprRenderer::renderLayer(SLayerSurface* pLayer, CMonitor* pMonitor, times
renderdata.popup = true;
wlr_layer_surface_v1_for_each_popup_surface(pLayer->layerSurface, renderSurface, &renderdata);
- g_pHyprOpenGL->m_pCurrentLayer = nullptr;
+ g_pHyprOpenGL->m_pCurrentLayer = nullptr;
+ g_pHyprOpenGL->m_RenderData.clipBox = {};
}
void CHyprRenderer::renderIMEPopup(SIMEPopup* pPopup, CMonitor* pMonitor, timespec* time) {