diff options
| author | Dominick DiMaggio <ddimaggio324@gmail.com> | 2025-10-29 08:53:42 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-29 12:53:42 +0000 |
| commit | ff50dc36e912b6ad764802d51be838bc7f6ed323 (patch) | |
| tree | a51a09b12e89b9ee3c5ceb2f082c09e49ff146ea /src/config/ConfigManager.cpp | |
| parent | ce9787b3f47ce550027274a1aa25e74b6fb1c74a (diff) | |
renderer/cm: allow gamma 2.2 instead of sRGB EOTF (#12094)
Diffstat (limited to 'src/config/ConfigManager.cpp')
| -rw-r--r-- | src/config/ConfigManager.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index 3c6729c4..a98e15cf 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -781,6 +781,7 @@ CConfigManager::CConfigManager() { registerConfigVar("render:cm_auto_hdr", Hyprlang::INT{1}); registerConfigVar("render:new_render_scheduling", Hyprlang::INT{0}); registerConfigVar("render:non_shader_cm", Hyprlang::INT{2}); + registerConfigVar("render:cm_sdr_eotf", Hyprlang::INT{0}); registerConfigVar("ecosystem:no_update_news", Hyprlang::INT{0}); registerConfigVar("ecosystem:no_donation_nag", Hyprlang::INT{0}); @@ -842,6 +843,7 @@ CConfigManager::CConfigManager() { m_config->addSpecialConfigValue("monitorv2", "mirror", {STRVAL_EMPTY}); m_config->addSpecialConfigValue("monitorv2", "bitdepth", {STRVAL_EMPTY}); // TODO use correct type m_config->addSpecialConfigValue("monitorv2", "cm", {"auto"}); + m_config->addSpecialConfigValue("monitorv2", "sdr_eotf", Hyprlang::INT{0}); m_config->addSpecialConfigValue("monitorv2", "sdrbrightness", Hyprlang::FLOAT{1.0}); m_config->addSpecialConfigValue("monitorv2", "sdrsaturation", Hyprlang::FLOAT{1.0}); m_config->addSpecialConfigValue("monitorv2", "vrr", Hyprlang::INT{0}); @@ -1115,6 +1117,9 @@ std::optional<std::string> CConfigManager::handleMonitorv2(const std::string& ou VAL = m_config->getSpecialConfigValuePtr("monitorv2", "cm", output.c_str()); if (VAL && VAL->m_bSetByUser) parser.parseCM(std::any_cast<Hyprlang::STRING>(VAL->getValue())); + VAL = m_config->getSpecialConfigValuePtr("monitorv2", "sdr_eotf", output.c_str()); + if (VAL && VAL->m_bSetByUser) + parser.rule().sdrEotf = std::any_cast<Hyprlang::INT>(VAL->getValue()); VAL = m_config->getSpecialConfigValuePtr("monitorv2", "sdrbrightness", output.c_str()); if (VAL && VAL->m_bSetByUser) parser.rule().sdrBrightness = std::any_cast<Hyprlang::FLOAT>(VAL->getValue()); |
