2024-12-22 17:12:09 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "../../defines.hpp"
|
|
|
|
|
#include "PassElement.hpp"
|
|
|
|
|
|
|
|
|
|
class CGradientValueData;
|
2025-01-01 17:26:05 +01:00
|
|
|
class CTexture;
|
2024-12-22 17:12:09 +01:00
|
|
|
|
|
|
|
|
class CRenderPass {
|
|
|
|
|
public:
|
|
|
|
|
bool empty() const;
|
|
|
|
|
bool single() const;
|
|
|
|
|
|
2025-07-10 10:44:59 +02:00
|
|
|
void add(UP<IPassElement>&& elem);
|
2024-12-22 17:12:09 +01:00
|
|
|
void clear();
|
2025-01-02 18:14:45 +01:00
|
|
|
void removeAllOfType(const std::string& type);
|
2024-12-22 17:12:09 +01:00
|
|
|
|
|
|
|
|
CRegion render(const CRegion& damage_);
|
|
|
|
|
|
|
|
|
|
private:
|
2025-05-05 23:44:49 +02:00
|
|
|
CRegion m_damage;
|
|
|
|
|
std::vector<CRegion> m_occludedRegions;
|
|
|
|
|
CRegion m_totalLiveBlurRegion;
|
2024-12-22 17:12:09 +01:00
|
|
|
|
|
|
|
|
struct SPassElementData {
|
|
|
|
|
CRegion elementDamage;
|
2025-07-10 10:44:59 +02:00
|
|
|
UP<IPassElement> element;
|
2024-12-22 17:12:09 +01:00
|
|
|
bool discard = false;
|
|
|
|
|
};
|
|
|
|
|
|
2025-07-10 10:44:59 +02:00
|
|
|
std::vector<UP<SPassElementData>> m_passElements;
|
2024-12-22 17:12:09 +01:00
|
|
|
|
|
|
|
|
void simplify();
|
|
|
|
|
float oneBlurRadius();
|
2025-01-01 17:26:05 +01:00
|
|
|
void renderDebugData();
|
|
|
|
|
|
|
|
|
|
struct {
|
|
|
|
|
bool present = false;
|
|
|
|
|
SP<CTexture> keyboardFocusText, pointerFocusText, lastWindowText;
|
2025-05-05 23:44:49 +02:00
|
|
|
} m_debugData;
|
2024-12-22 17:12:09 +01:00
|
|
|
|
|
|
|
|
friend class CHyprOpenGLImpl;
|
|
|
|
|
};
|