#pragma once #include "../../defines.hpp" #include "PassElement.hpp" class CGradientValueData; class CRenderPass { public: bool empty() const; bool single() const; bool needsIntrospection() const; void add(SP elem); void clear(); CRegion render(const CRegion& damage_); private: CRegion damage; CRegion occludedRegion; CRegion totalLiveBlurRegion; struct SPassElementData { CRegion elementDamage; SP element; bool discard = false; }; std::vector> m_vPassElements; SP currentPassInfo = nullptr; void simplify(); float oneBlurRadius(); friend class CHyprOpenGLImpl; };