diff options
| author | Filip Mikina <fm394471@students.mimuw.edu.pl> | 2025-10-24 21:18:39 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-24 20:18:39 +0100 |
| commit | 34812c33dbfdac33093c84b3edf5076838cbf2a6 (patch) | |
| tree | 8aa0ab0b23e6944175e9594ffe37e0a5d3ace1d0 /src/helpers/Monitor.cpp | |
| parent | 117e38db35a8bdd98f0210d41b83b4bb0e5e6a63 (diff) | |
hyprctl: include color management presets and sdr information (#12019)
* move string parsing for eCMType to its own namespace, similar to how
`src/protocols/types/ContentType.cpp` is done
* expose cm type and sdr settings in `hyprctl monitors`, format floats
to .2f
Diffstat (limited to 'src/helpers/Monitor.cpp')
| -rw-r--r-- | src/helpers/Monitor.cpp | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp index 1bc1c0ba..1ec035fd 100644 --- a/src/helpers/Monitor.cpp +++ b/src/helpers/Monitor.cpp @@ -465,31 +465,31 @@ void CMonitor::onDisconnect(bool destroy) { std::erase_if(g_pCompositor->m_monitors, [&](PHLMONITOR& el) { return el.get() == this; }); } -void CMonitor::applyCMType(eCMType cmType) { +void CMonitor::applyCMType(NCMType::eCMType cmType) { auto oldImageDescription = m_imageDescription; switch (cmType) { - case CM_SRGB: m_imageDescription = {}; break; // assumes SImageDescirption defaults to sRGB - case CM_WIDE: + case NCMType::CM_SRGB: m_imageDescription = {}; break; // assumes SImageDescirption defaults to sRGB + case NCMType::CM_WIDE: m_imageDescription = {.primariesNameSet = true, .primariesNamed = NColorManagement::CM_PRIMARIES_BT2020, .primaries = NColorManagement::getPrimaries(NColorManagement::CM_PRIMARIES_BT2020)}; break; - case CM_DCIP3: + case NCMType::CM_DCIP3: m_imageDescription = {.primariesNameSet = true, .primariesNamed = NColorManagement::CM_PRIMARIES_DCI_P3, .primaries = NColorManagement::getPrimaries(NColorManagement::CM_PRIMARIES_DCI_P3)}; break; - case CM_DP3: + case NCMType::CM_DP3: m_imageDescription = {.primariesNameSet = true, .primariesNamed = NColorManagement::CM_PRIMARIES_DISPLAY_P3, .primaries = NColorManagement::getPrimaries(NColorManagement::CM_PRIMARIES_DISPLAY_P3)}; break; - case CM_ADOBE: + case NCMType::CM_ADOBE: m_imageDescription = {.primariesNameSet = true, .primariesNamed = NColorManagement::CM_PRIMARIES_ADOBE_RGB, .primaries = NColorManagement::getPrimaries(NColorManagement::CM_PRIMARIES_ADOBE_RGB)}; break; - case CM_EDID: + case NCMType::CM_EDID: m_imageDescription = {.primariesNameSet = false, .primariesNamed = NColorManagement::CM_PRIMARIES_BT2020, .primaries = { @@ -499,14 +499,14 @@ void CMonitor::applyCMType(eCMType cmType) { .white = {.x = m_output->parsedEDID.chromaticityCoords->white.x, .y = m_output->parsedEDID.chromaticityCoords->white.y}, }}; break; - case CM_HDR: + case NCMType::CM_HDR: m_imageDescription = {.transferFunction = NColorManagement::CM_TRANSFER_FUNCTION_ST2084_PQ, .primariesNameSet = true, .primariesNamed = NColorManagement::CM_PRIMARIES_BT2020, .primaries = NColorManagement::getPrimaries(NColorManagement::CM_PRIMARIES_BT2020), .luminances = {.min = 0, .max = 10000, .reference = 203}}; break; - case CM_HDR_EDID: + case NCMType::CM_HDR_EDID: m_imageDescription = {.transferFunction = NColorManagement::CM_TRANSFER_FUNCTION_ST2084_PQ, .primariesNameSet = false, .primariesNamed = NColorManagement::CM_PRIMARIES_BT2020, @@ -861,10 +861,10 @@ bool CMonitor::applyMonitorRule(SMonitorRule* pMonitorRule, bool force) { m_cmType = RULE->cmType; switch (m_cmType) { - case CM_AUTO: m_cmType = m_enabled10bit && supportsWideColor() ? CM_WIDE : CM_SRGB; break; - case CM_EDID: m_cmType = m_output->parsedEDID.chromaticityCoords.has_value() ? CM_EDID : CM_SRGB; break; - case CM_HDR: - case CM_HDR_EDID: m_cmType = supportsHDR() ? m_cmType : CM_SRGB; break; + case NCMType::CM_AUTO: m_cmType = m_enabled10bit && supportsWideColor() ? NCMType::CM_WIDE : NCMType::CM_SRGB; break; + case NCMType::CM_EDID: m_cmType = m_output->parsedEDID.chromaticityCoords.has_value() ? NCMType::CM_EDID : NCMType::CM_SRGB; break; + case NCMType::CM_HDR: + case NCMType::CM_HDR_EDID: m_cmType = supportsHDR() ? m_cmType : NCMType::CM_SRGB; break; default: break; } |
