From fbabb105c3427fbbce4dfc3ea9701ba473298206 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Wed, 14 Jun 2023 13:26:47 +0200 Subject: gamma: use wlr's new gamma manager event --- src/render/Renderer.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/render/Renderer.cpp') diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index ce8cb0ff..5b61e70f 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -860,6 +860,24 @@ void CHyprRenderer::renderMonitor(CMonitor* pMonitor) { g_pLayoutManager->getCurrentLayout()->recalculateMonitor(pMonitor->ID); } + // gamma stuff + if (pMonitor->gammaChanged) { + pMonitor->gammaChanged = false; + + const auto PGAMMACTRL = wlr_gamma_control_manager_v1_get_control(g_pCompositor->m_sWLRGammaCtrlMgr, pMonitor->output); + + if (!wlr_gamma_control_v1_apply(PGAMMACTRL, &pMonitor->output->pending)) { + Debug::log(ERR, "Could not apply gamma control to %s", pMonitor->szName.c_str()); + return; + } + + if (!wlr_output_test(pMonitor->output)) { + Debug::log(ERR, "Output test failed for setting gamma to %s", pMonitor->szName.c_str()); + wlr_output_rollback(pMonitor->output); + wlr_gamma_control_v1_send_failed_and_destroy(PGAMMACTRL); + } + } + // Direct scanout first if (!*PNODIRECTSCANOUT) { if (attemptDirectScanout(pMonitor)) { -- cgit v1.2.3