From 6794f0912eea74d9ff92cc5aa92b8a4e1c00d4be Mon Sep 17 00:00:00 2001 From: cdozdil Date: Thu, 30 Apr 2026 00:42:41 +0300 Subject: [PATCH] Fix overlay tonemapping usage --- OptiScaler/menu/menu_common.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/OptiScaler/menu/menu_common.cpp b/OptiScaler/menu/menu_common.cpp index d8fddbf8..03b55490 100644 --- a/OptiScaler/menu/menu_common.cpp +++ b/OptiScaler/menu/menu_common.cpp @@ -1347,12 +1347,19 @@ void MenuCommon::PopulateCombo(const std::string& name, TStorage& currentValue, static ImVec4 toneMapColor(const ImVec4& color) { - // Apply tone mapping (e.g., Reinhard tone mapping) - float luminance = 0.2126f * color.x + 0.7152f * color.y + 0.0722f * color.z; - float mappedLuminance = luminance / (1.0f + luminance); - float scale = mappedLuminance / luminance; + if (State::Instance().isHdrActive || + (!Config::Instance()->OverlayMenu.value_or_default() && State::Instance().currentFeature != nullptr && + State::Instance().currentFeature->IsHdr())) + { + // Apply tone mapping (e.g., Reinhard tone mapping) + float luminance = 0.2126f * color.x + 0.7152f * color.y + 0.0722f * color.z; + float mappedLuminance = luminance / (1.0f + luminance); + float scale = mappedLuminance / luminance; - return ImVec4(color.x * scale, color.y * scale, color.z * scale, color.w); + return ImVec4(color.x * scale, color.y * scale, color.z * scale, color.w); + } + + return color; } static void MenuHdrCheck(ImGuiIO io)