summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-03-19 13:35:04 +0100
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-03-19 13:35:04 +0100
commitd61503352637fd2153dbbbac20e0a5f9d6e3f201 (patch)
treedaaecd16c3fb080c99ff2ac0c6ec2880e294450d /src/render/Renderer.cpp
parent8cc0f35fbb959b65eb99beedd0bac17a587a2b0c (diff)
layers
Diffstat (limited to 'src/render/Renderer.cpp')
-rw-r--r--src/render/Renderer.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index 62e78c56..1c3d47ac 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -38,6 +38,16 @@ void CHyprRenderer::renderAllClientsForMonitor(const int& ID, timespec* time) {
if (!PMONITOR)
return;
+ // Render layer surfaces below windows for monitor
+ for (auto& ls : PMONITOR->m_aLayerSurfaceLists[ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND]) {
+ SRenderData renderdata = {PMONITOR->output, time, ls.geometry.x, ls.geometry.y};
+ wlr_surface_for_each_surface(ls.layerSurface->surface, renderSurface, &renderdata);
+ }
+ for (auto& ls : PMONITOR->m_aLayerSurfaceLists[ZWLR_LAYER_SHELL_V1_LAYER_BOTTOM]) {
+ SRenderData renderdata = {PMONITOR->output, time, ls.geometry.x, ls.geometry.y};
+ wlr_surface_for_each_surface(ls.layerSurface->surface, renderSurface, &renderdata);
+ }
+
for (auto& w : g_pCompositor->m_lWindows) {
if (w.m_bIsX11)
@@ -78,4 +88,14 @@ void CHyprRenderer::renderAllClientsForMonitor(const int& ID, timespec* time) {
if (w.m_uSurface.xwayland->surface)
wlr_surface_for_each_surface(g_pXWaylandManager->getWindowSurface(&w), renderSurface, &renderdata);
}
+
+ // Render surfaces above windows for monitor
+ for (auto& ls : PMONITOR->m_aLayerSurfaceLists[ZWLR_LAYER_SHELL_V1_LAYER_TOP]) {
+ SRenderData renderdata = {PMONITOR->output, time, ls.geometry.x, ls.geometry.y};
+ wlr_surface_for_each_surface(ls.layerSurface->surface, renderSurface, &renderdata);
+ }
+ for (auto& ls : PMONITOR->m_aLayerSurfaceLists[ZWLR_LAYER_SHELL_V1_LAYER_OVERLAY]) {
+ SRenderData renderdata = {PMONITOR->output, time, ls.geometry.x, ls.geometry.y};
+ wlr_surface_for_each_surface(ls.layerSurface->surface, renderSurface, &renderdata);
+ }
}