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