From 49974d5e34292ede24351c8638fe060b382bbda0 Mon Sep 17 00:00:00 2001 From: UjinT34 <41110182+UjinT34@users.noreply.github.com> Date: Tue, 29 Apr 2025 22:29:40 +0300 Subject: cm: Use precomputed primaries conversion (#9814) --- src/protocols/ColorManagement.cpp | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) (limited to 'src/protocols/ColorManagement.cpp') diff --git a/src/protocols/ColorManagement.cpp b/src/protocols/ColorManagement.cpp index 91dc0eac..29d9d248 100644 --- a/src/protocols/ColorManagement.cpp +++ b/src/protocols/ColorManagement.cpp @@ -8,8 +8,6 @@ using namespace NColorManagement; -static uint64_t lastImageID = 0; // FIXME use for deduplication - CColorManager::CColorManager(SP resource) : m_resource(resource) { if UNLIKELY (!good()) return; @@ -191,14 +189,13 @@ CColorManager::CColorManager(SP resource) : m_resource(resour } RESOURCE->self = RESOURCE; - RESOURCE->settings.id = ++lastImageID; RESOURCE->settings.windowsScRGB = true; RESOURCE->settings.primariesNamed = NColorManagement::CM_PRIMARIES_SRGB; RESOURCE->settings.primariesNameSet = true; RESOURCE->settings.primaries = NColorPrimaries::BT709; RESOURCE->settings.transferFunction = NColorManagement::CM_TRANSFER_FUNCTION_EXT_LINEAR; RESOURCE->settings.luminances.reference = 203; - RESOURCE->resource()->sendReady(RESOURCE->settings.id); + RESOURCE->resource()->sendReady(RESOURCE->settings.updateId()); }); m_resource->setOnDestroy([this](CWpColorManagerV1* r) { PROTO::colorManagement->destroyResource(this); }); @@ -239,9 +236,7 @@ CColorManagementOutput::CColorManagementOutput(SP re RESOURCE->m_resource->sendFailed(WP_IMAGE_DESCRIPTION_V1_CAUSE_NO_OUTPUT, "No output"); else { RESOURCE->settings = m_monitor->imageDescription; - if (RESOURCE->settings.id) - RESOURCE->settings.id = ++lastImageID; - RESOURCE->m_resource->sendReady(RESOURCE->settings.id); // FIXME: create correct id + RESOURCE->m_resource->sendReady(RESOURCE->settings.updateId()); } }); } @@ -383,10 +378,7 @@ CColorManagementFeedbackSurface::CColorManagementFeedbackSurface(SPsettings = g_pCompositor->getPreferredImageDescription(); - if (!m_currentPreferred->settings.id) - m_currentPreferred->settings.id = ++lastImageID; - - RESOURCE->resource()->sendReady(++lastImageID); // FIXME: create correct id + RESOURCE->resource()->sendReady(m_currentPreferred->settings.updateId()); }); m_resource->setGetPreferredParametric([this](CWpColorManagementSurfaceFeedbackV1* r, uint32_t id) { @@ -419,7 +411,7 @@ CColorManagementFeedbackSurface::CColorManagementFeedbackSurface(SPresource()->sendReady(++lastImageID); // FIXME: create correct id + RESOURCE->resource()->sendReady(m_currentPreferred->settings.updateId()); }); } @@ -467,8 +459,7 @@ CColorManagementIccCreator::CColorManagementIccCreator(SPself = RESOURCE; RESOURCE->settings = settings; - settings.id = ++lastImageID; - RESOURCE->resource()->sendReady(settings.id); // FIXME: create correct id + RESOURCE->resource()->sendReady(settings.updateId()); PROTO::colorManagement->destroyResource(this); }); @@ -522,8 +513,7 @@ CColorManagementParametricCreator::CColorManagementParametricCreator(SPself = RESOURCE; RESOURCE->settings = settings; - settings.id = ++lastImageID; - RESOURCE->resource()->sendReady(settings.id); // FIXME: create correct id + RESOURCE->resource()->sendReady(settings.updateId()); PROTO::colorManagement->destroyResource(this); }); -- cgit v1.2.3