From 2c4852e31f1cc974164fdd1bf383a67c26cafe44 Mon Sep 17 00:00:00 2001 From: Vaxry <43317083+vaxerski@users.noreply.github.com> Date: Fri, 27 Mar 2026 10:08:56 -0400 Subject: renderer/deco: add glow decoration (#13862) --- src/render/pass/InnerGlowPassElement.cpp | 13 +++++++++++++ src/render/pass/InnerGlowPassElement.hpp | 28 ++++++++++++++++++++++++++++ src/render/pass/PassElement.hpp | 3 ++- 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 src/render/pass/InnerGlowPassElement.cpp create mode 100644 src/render/pass/InnerGlowPassElement.hpp (limited to 'src/render/pass') diff --git a/src/render/pass/InnerGlowPassElement.cpp b/src/render/pass/InnerGlowPassElement.cpp new file mode 100644 index 00000000..04ccebd7 --- /dev/null +++ b/src/render/pass/InnerGlowPassElement.cpp @@ -0,0 +1,13 @@ +#include "InnerGlowPassElement.hpp" + +CInnerGlowPassElement::CInnerGlowPassElement(const CInnerGlowPassElement::SInnerGlowData& data_) : m_data(data_) { + ; +} + +bool CInnerGlowPassElement::needsLiveBlur() { + return false; +} + +bool CInnerGlowPassElement::needsPrecomputeBlur() { + return false; +} diff --git a/src/render/pass/InnerGlowPassElement.hpp b/src/render/pass/InnerGlowPassElement.hpp new file mode 100644 index 00000000..62db7791 --- /dev/null +++ b/src/render/pass/InnerGlowPassElement.hpp @@ -0,0 +1,28 @@ +#pragma once +#include "PassElement.hpp" + +class CHyprInnerGlowDecoration; + +class CInnerGlowPassElement : public IPassElement { + public: + struct SInnerGlowData { + CHyprInnerGlowDecoration* deco = nullptr; + float a = 1.F; + }; + + CInnerGlowPassElement(const SInnerGlowData& data_); + virtual ~CInnerGlowPassElement() = default; + + virtual bool needsLiveBlur(); + virtual bool needsPrecomputeBlur(); + + virtual const char* passName() { + return "CInnerGlowPassElement"; + } + + virtual ePassElementType type() { + return EK_INNER_GLOW; + }; + + SInnerGlowData m_data; +}; diff --git a/src/render/pass/PassElement.hpp b/src/render/pass/PassElement.hpp index 0dc5f581..c262b36c 100644 --- a/src/render/pass/PassElement.hpp +++ b/src/render/pass/PassElement.hpp @@ -13,7 +13,8 @@ enum ePassElementType : uint8_t { EK_SHADOW, EK_SURFACE, EK_TEXTURE, - EK_TEXTURE_MATTE + EK_TEXTURE_MATTE, + EK_INNER_GLOW }; class IPassElement { -- cgit v1.2.3