Hyprland/src/helpers/Color.hpp

35 lines
737 B
C++
Raw Normal View History

2022-03-31 17:50:00 +02:00
#pragma once
#include <cstdint>
2022-03-31 17:50:00 +02:00
class CColor {
public:
2022-03-31 17:50:00 +02:00
CColor();
2023-11-11 01:52:40 +01:00
CColor(float r, float g, float b, float a);
2022-03-31 17:50:00 +02:00
CColor(uint64_t);
float r = 0, g = 0, b = 0, a = 1.f;
2022-03-31 17:50:00 +02:00
2024-04-05 22:23:06 +02:00
uint32_t getAsHex();
2022-04-23 21:47:16 +02:00
CColor operator-(const CColor& c2) const {
return CColor(r - c2.r, g - c2.g, b - c2.b, a - c2.a);
2022-04-23 21:47:16 +02:00
}
CColor operator+(const CColor& c2) const {
2022-04-23 21:47:16 +02:00
return CColor(r + c2.r, g + c2.g, b + c2.b, a + c2.a);
}
CColor operator*(const float& v) const {
2022-04-23 21:47:16 +02:00
return CColor(r * v, g * v, b * v, a * v);
}
2022-09-25 20:07:48 +02:00
2022-05-12 11:27:31 +02:00
bool operator==(const CColor& c2) const {
return r == c2.r && g == c2.g && b == c2.b && a == c2.a;
}
2023-11-11 01:52:40 +01:00
CColor stripA() const {
return {r, g, b, 1};
}
2022-09-25 20:07:48 +02:00
};