From 1d679874591c7848794b83f1d8bfe245772c11d2 Mon Sep 17 00:00:00 2001 From: UjinT34 <41110182+UjinT34@users.noreply.github.com> Date: Tue, 19 Aug 2025 21:28:52 +0300 Subject: hdr: fix overrides and missing edid hdr metadata (#11476) --- src/helpers/Monitor.cpp | 13 +++++++------ src/helpers/Monitor.hpp | 6 +++--- 2 files changed, 10 insertions(+), 9 deletions(-) (limited to 'src/helpers') diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp index d6d9fedd..a84c4c64 100644 --- a/src/helpers/Monitor.cpp +++ b/src/helpers/Monitor.cpp @@ -1669,16 +1669,17 @@ bool CMonitor::supportsHDR() { return supportsWideColor() && (m_supportsHDR || (m_output->parsedEDID.hdrMetadata.has_value() ? m_output->parsedEDID.hdrMetadata->supportsPQ : false)); } -float CMonitor::minLuminance() { - return m_minLuminance >= 0 ? m_minLuminance : (m_output->parsedEDID.hdrMetadata.has_value() ? m_output->parsedEDID.hdrMetadata->desiredContentMinLuminance : 0); +float CMonitor::minLuminance(float defaultValue) { + return m_minLuminance >= 0 ? m_minLuminance : (m_output->parsedEDID.hdrMetadata.has_value() ? m_output->parsedEDID.hdrMetadata->desiredContentMinLuminance : defaultValue); } -int CMonitor::maxLuminance() { - return m_maxLuminance >= 0 ? m_maxLuminance : (m_output->parsedEDID.hdrMetadata.has_value() ? m_output->parsedEDID.hdrMetadata->desiredContentMaxLuminance : 80); +int CMonitor::maxLuminance(int defaultValue) { + return m_maxLuminance >= 0 ? m_maxLuminance : (m_output->parsedEDID.hdrMetadata.has_value() ? m_output->parsedEDID.hdrMetadata->desiredContentMaxLuminance : defaultValue); } -int CMonitor::maxAvgLuminance() { - return m_maxAvgLuminance >= 0 ? m_maxAvgLuminance : (m_output->parsedEDID.hdrMetadata.has_value() ? m_output->parsedEDID.hdrMetadata->desiredMaxFrameAverageLuminance : 80); +int CMonitor::maxAvgLuminance(int defaultValue) { + return m_maxAvgLuminance >= 0 ? m_maxAvgLuminance : + (m_output->parsedEDID.hdrMetadata.has_value() ? m_output->parsedEDID.hdrMetadata->desiredMaxFrameAverageLuminance : defaultValue); } CMonitorState::CMonitorState(CMonitor* owner) : m_owner(owner) { diff --git a/src/helpers/Monitor.hpp b/src/helpers/Monitor.hpp index 14a72a9c..09c6c49d 100644 --- a/src/helpers/Monitor.hpp +++ b/src/helpers/Monitor.hpp @@ -245,9 +245,9 @@ class CMonitor { bool supportsWideColor(); bool supportsHDR(); - float minLuminance(); - int maxLuminance(); - int maxAvgLuminance(); + float minLuminance(float defaultValue = 0); + int maxLuminance(int defaultValue = 80); + int maxAvgLuminance(int defaultValue = 80); bool m_enabled = false; bool m_renderingInitPassed = false; -- cgit v1.2.3