summaryrefslogtreecommitdiff
path: root/src/config/ConfigDataValues.hpp
diff options
context:
space:
mode:
authorVaxry <43317083+vaxerski@users.noreply.github.com>2024-12-03 18:58:24 +0000
committerGitHub <noreply@github.com>2024-12-03 18:58:24 +0000
commit320144ae7288fe23686935ebb235d9fe0c900862 (patch)
tree351b04e228926f98c12c340284c25450bb1fed4f /src/config/ConfigDataValues.hpp
parent92186898c0ca1b3f72922b72c4af1723f0d9b888 (diff)
core: move colorspace handling to oklab (#8635)
* Meson: add hyprgraphics * Nix: add hyprgraphics * CI/setup_base: get hyprgraphics-git --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
Diffstat (limited to 'src/config/ConfigDataValues.hpp')
-rw-r--r--src/config/ConfigDataValues.hpp22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/config/ConfigDataValues.hpp b/src/config/ConfigDataValues.hpp
index 37c9fc92..212f26fa 100644
--- a/src/config/ConfigDataValues.hpp
+++ b/src/config/ConfigDataValues.hpp
@@ -21,8 +21,9 @@ class ICustomConfigValueData {
class CGradientValueData : public ICustomConfigValueData {
public:
CGradientValueData() {};
- CGradientValueData(CColor col) {
+ CGradientValueData(CHyprColor col) {
m_vColors.push_back(col);
+ updateColorsOk();
};
virtual ~CGradientValueData() {};
@@ -30,14 +31,29 @@ class CGradientValueData : public ICustomConfigValueData {
return CVD_TYPE_GRADIENT;
}
- void reset(CColor col) {
+ void reset(CHyprColor col) {
m_vColors.clear();
m_vColors.emplace_back(col);
m_fAngle = 0;
+ updateColorsOk();
+ }
+
+ void updateColorsOk() {
+ m_vColorsOkLabA.clear();
+ for (auto& c : m_vColors) {
+ const auto OKLAB = c.asOkLab();
+ m_vColorsOkLabA.emplace_back(OKLAB.l);
+ m_vColorsOkLabA.emplace_back(OKLAB.a);
+ m_vColorsOkLabA.emplace_back(OKLAB.b);
+ m_vColorsOkLabA.emplace_back(c.a);
+ }
}
/* Vector containing the colors */
- std::vector<CColor> m_vColors;
+ std::vector<CHyprColor> m_vColors;
+
+ /* Vector containing pure colors for shoving into opengl */
+ std::vector<float> m_vColorsOkLabA;
/* Float corresponding to the angle (rad) */
float m_fAngle = 0;