diff options
| author | vaxerski <vaxry@vaxry.net> | 2025-03-18 11:30:01 +0000 |
|---|---|---|
| committer | vaxerski <vaxry@vaxry.net> | 2025-03-18 11:30:08 +0000 |
| commit | cca0f48b74e87f86244f5773c42d9ade84683f3b (patch) | |
| tree | 675a7eb1a9c2964733546b2f68fb94a840de943f /src/managers/ProtocolManager.cpp | |
| parent | 60edb376f29d89859072d90e9e4d8660a07caf88 (diff) | |
renderer: add an option to disable cm and auto-skip cm if not necessary
fixes #9641
adds render:cm_enabled default true
Diffstat (limited to 'src/managers/ProtocolManager.cpp')
| -rw-r--r-- | src/managers/ProtocolManager.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/managers/ProtocolManager.cpp b/src/managers/ProtocolManager.cpp index 992ace20..06987dae 100644 --- a/src/managers/ProtocolManager.cpp +++ b/src/managers/ProtocolManager.cpp @@ -98,6 +98,7 @@ void CProtocolManager::onMonitorModeChange(PHLMONITOR pMonitor) { CProtocolManager::CProtocolManager() { static const auto PENABLEEXPLICIT = CConfigValue<Hyprlang::INT>("render:explicit_sync"); + static const auto PENABLECM = CConfigValue<Hyprlang::INT>("render:cm_enabled"); static const auto PENABLEXXCM = CConfigValue<Hyprlang::INT>("experimental:xx_color_management_v4"); static const auto PDEBUGCM = CConfigValue<Hyprlang::INT>("debug:full_cm_proto"); @@ -181,14 +182,17 @@ CProtocolManager::CProtocolManager() { PROTO::ctm = makeUnique<CHyprlandCTMControlProtocol>(&hyprland_ctm_control_manager_v1_interface, 2, "CTMControl"); PROTO::hyprlandSurface = makeUnique<CHyprlandSurfaceProtocol>(&hyprland_surface_manager_v1_interface, 2, "HyprlandSurface"); PROTO::contentType = makeUnique<CContentTypeProtocol>(&wp_content_type_manager_v1_interface, 1, "ContentType"); - PROTO::colorManagement = makeUnique<CColorManagementProtocol>(&wp_color_manager_v1_interface, 1, "ColorManagement", *PDEBUGCM); - // please read the top of this file before adding another protocol - if (*PENABLEXXCM) { + if (*PENABLECM) + PROTO::colorManagement = makeUnique<CColorManagementProtocol>(&wp_color_manager_v1_interface, 1, "ColorManagement", *PDEBUGCM); + + if (*PENABLEXXCM && *PENABLECM) { PROTO::xxColorManagement = makeUnique<CXXColorManagementProtocol>(&xx_color_manager_v4_interface, 1, "XXColorManagement"); PROTO::frogColorManagement = makeUnique<CFrogColorManagementProtocol>(&frog_color_management_factory_v1_interface, 1, "FrogColorManagement"); } + // ! please read the top of this file before adding another protocol + for (auto const& b : g_pCompositor->m_pAqBackend->getImplementations()) { if (b->type() != Aquamarine::AQ_BACKEND_DRM) continue; |
