#include "BarPassElement.hpp" #include #include #include "barDeco.hpp" using namespace Render::GL; CBarPassElement::CBarPassElement(const CBarPassElement::SBarData& data_) : data(data_) { ; } std::vector> CBarPassElement::draw() { data.deco->renderPass(g_pHyprRenderer->m_renderData.pMonitor.lock(), data.a); return {}; } bool CBarPassElement::needsLiveBlur() { static auto PENABLEBLURGLOBAL = CConfigValue("decoration:blur:enabled"); CHyprColor color = data.deco->m_bForcedBarColor.value_or(CHyprColor{static_cast(g_pGlobalState->config.barColor->value())}); color.a *= data.a; const bool SHOULDBLUR = g_pGlobalState->config.barBlur->value() && *PENABLEBLURGLOBAL && color.a < 1.F; return SHOULDBLUR; } std::optional CBarPassElement::boundingBox() { // Temporary fix: expand the bar bb a bit, otherwise occlusion gets too aggressive. return data.deco->assignedBoxGlobal().translate(-g_pHyprRenderer->m_renderData.pMonitor->m_position).expand(10); } bool CBarPassElement::needsPrecomputeBlur() { return false; }