#pragma once #include "../../defines.hpp" #include "PassElement.hpp" class CGradientValueData; class CTexture; class CRenderPass { public: bool empty() const; bool single() const; void add(UP&& elem); void clear(); void removeAllOfType(const std::string& type); CRegion render(const CRegion& damage_); private: CRegion m_damage; std::vector m_occludedRegions; CRegion m_totalLiveBlurRegion; struct SPassElementData { CRegion elementDamage; UP element; bool discard = false; }; std::vector> m_passElements; void simplify(); float oneBlurRadius(); void renderDebugData(); struct { bool present = false; SP keyboardFocusText, pointerFocusText, lastWindowText; } m_debugData; friend class CHyprOpenGLImpl; };