From 05a1c0aa7395d19213e587c83089ecbd7b92085c Mon Sep 17 00:00:00 2001 From: UjinT34 <41110182+UjinT34@users.noreply.github.com> Date: Fri, 29 Aug 2025 14:31:07 +0300 Subject: renderer: Fix CM for DS and SDR passthrough (#11503) --- src/protocols/core/Compositor.cpp | 4 ++++ src/protocols/core/Compositor.hpp | 1 + 2 files changed, 5 insertions(+) (limited to 'src/protocols') diff --git a/src/protocols/core/Compositor.cpp b/src/protocols/core/Compositor.cpp index a859148f..484df21f 100644 --- a/src/protocols/core/Compositor.cpp +++ b/src/protocols/core/Compositor.cpp @@ -423,6 +423,10 @@ SP CWLSurfaceResource::findFirstPreorder(std::function CWLSurfaceResource::findWithCM() { + return findFirstPreorder([this](SP surf) { return surf->m_colorManagement.valid() && surf->extends() == extends(); }); +} + std::pair, Vector2D> CWLSurfaceResource::at(const Vector2D& localCoords, bool allowsInput) { std::vector, Vector2D>> surfs; breadthfirst([&surfs](SP surf, const Vector2D& offset, void* data) { surfs.emplace_back(std::make_pair<>(surf, offset)); }, &surfs); diff --git a/src/protocols/core/Compositor.hpp b/src/protocols/core/Compositor.hpp index 5a69deb6..0eff3f08 100644 --- a/src/protocols/core/Compositor.hpp +++ b/src/protocols/core/Compositor.hpp @@ -108,6 +108,7 @@ class CWLSurfaceResource { void breadthfirst(std::function, const Vector2D&, void*)> fn, void* data); SP findFirstPreorder(std::function)> fn); + SP findWithCM(); void presentFeedback(const Time::steady_tp& when, PHLMONITOR pMonitor, bool discarded = false); void commitState(SSurfaceState& state); NColorManagement::SImageDescription getPreferredImageDescription(); -- cgit v1.2.3