diff options
| author | Vaxry <43317083+vaxerski@users.noreply.github.com> | 2025-09-18 22:10:30 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-18 22:10:30 +0200 |
| commit | 4fc95d646dbbe71744fb4e02ca0e995b652bffe5 (patch) | |
| tree | d2cfad68788de39712289d3e5aab54ebb20ef22e /src/render/Renderer.cpp | |
| parent | 91f592a87509436dc6f6ea7b3d6705ed7c5af046 (diff) | |
renderer: asynchronously load background tex (#11749)
Bumps required hyprgraphics to 0.1.6
---------
Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
Diffstat (limited to 'src/render/Renderer.cpp')
| -rw-r--r-- | src/render/Renderer.cpp | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 7efaed0e..32b571b1 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -846,8 +846,6 @@ void CHyprRenderer::renderAllClientsForWorkspace(PHLMONITOR pMonitor, PHLWORKSPA static auto PDIMSPECIAL = CConfigValue<Hyprlang::FLOAT>("decoration:dim_special"); static auto PBLURSPECIAL = CConfigValue<Hyprlang::INT>("decoration:blur:special"); static auto PBLUR = CConfigValue<Hyprlang::INT>("decoration:blur:enabled"); - static auto PRENDERTEX = CConfigValue<Hyprlang::INT>("misc:disable_hyprland_logo"); - static auto PBACKGROUNDCOLOR = CConfigValue<Hyprlang::INT>("misc:background_color"); static auto PXPMODE = CConfigValue<Hyprlang::INT>("render:xp_mode"); static auto PSESSIONLOCKXRAY = CConfigValue<Hyprlang::INT>("misc:session_lock_xray"); @@ -883,10 +881,7 @@ void CHyprRenderer::renderAllClientsForWorkspace(PHLMONITOR pMonitor, PHLWORKSPA if (!pWorkspace) { // allow rendering without a workspace. In this case, just render layers. - if (*PRENDERTEX /* inverted cfg flag */) - m_renderPass.add(makeUnique<CClearPassElement>(CClearPassElement::SClearData{CHyprColor(*PBACKGROUNDCOLOR)})); - else - g_pHyprOpenGL->clearWithTex(); // will apply the hypr "wallpaper" + renderBackground(pMonitor); for (auto const& ls : pMonitor->m_layerSurfaceLayers[ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND]) { renderLayer(ls.lock(), pMonitor, time); @@ -910,10 +905,7 @@ void CHyprRenderer::renderAllClientsForWorkspace(PHLMONITOR pMonitor, PHLWORKSPA } if (!*PXPMODE) { - if (*PRENDERTEX /* inverted cfg flag */) - m_renderPass.add(makeUnique<CClearPassElement>(CClearPassElement::SClearData{CHyprColor(*PBACKGROUNDCOLOR)})); - else - g_pHyprOpenGL->clearWithTex(); // will apply the hypr "wallpaper" + renderBackground(pMonitor); for (auto const& ls : pMonitor->m_layerSurfaceLayers[ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND]) { renderLayer(ls.lock(), pMonitor, time); @@ -1011,6 +1003,17 @@ void CHyprRenderer::renderAllClientsForWorkspace(PHLMONITOR pMonitor, PHLWORKSPA //g_pHyprOpenGL->restoreMatrix(); } +void CHyprRenderer::renderBackground(PHLMONITOR pMonitor) { + static auto PRENDERTEX = CConfigValue<Hyprlang::INT>("misc:disable_hyprland_logo"); + static auto PBACKGROUNDCOLOR = CConfigValue<Hyprlang::INT>("misc:background_color"); + + if (*PRENDERTEX /* inverted cfg flag */ || pMonitor->m_backgroundOpacity->isBeingAnimated()) + m_renderPass.add(makeUnique<CClearPassElement>(CClearPassElement::SClearData{CHyprColor(*PBACKGROUNDCOLOR)})); + + if (!*PRENDERTEX) + g_pHyprOpenGL->clearWithTex(); // will apply the hypr "wallpaper" +} + void CHyprRenderer::renderLockscreen(PHLMONITOR pMonitor, const Time::steady_tp& now, const CBox& geometry) { TRACY_GPU_ZONE("RenderLockscreen"); |
