2024-12-22 17:12:09 +01:00
|
|
|
#pragma once
|
|
|
|
|
#include "PassElement.hpp"
|
|
|
|
|
|
|
|
|
|
class CRectPassElement : public IPassElement {
|
|
|
|
|
public:
|
|
|
|
|
struct SRectData {
|
|
|
|
|
CBox box;
|
|
|
|
|
CHyprColor color;
|
2025-01-05 12:38:49 -06:00
|
|
|
int round = 0;
|
|
|
|
|
float roundingPower = 2.0f;
|
2024-12-22 17:12:09 +01:00
|
|
|
bool blur = false, xray = false;
|
|
|
|
|
float blurA = 1.F;
|
2025-01-31 13:32:36 +00:00
|
|
|
CBox clipBox;
|
2024-12-22 17:12:09 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
CRectPassElement(const SRectData& data);
|
|
|
|
|
virtual ~CRectPassElement() = default;
|
|
|
|
|
|
|
|
|
|
virtual void draw(const CRegion& damage);
|
|
|
|
|
virtual bool needsLiveBlur();
|
|
|
|
|
virtual bool needsPrecomputeBlur();
|
|
|
|
|
virtual std::optional<CBox> boundingBox();
|
|
|
|
|
virtual CRegion opaqueRegion();
|
|
|
|
|
|
|
|
|
|
virtual const char* passName() {
|
|
|
|
|
return "CRectPassElement";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private:
|
2025-05-05 23:44:49 +02:00
|
|
|
SRectData m_data;
|
2025-01-05 12:38:49 -06:00
|
|
|
};
|