diff options
| author | Vaxry <43317083+vaxerski@users.noreply.github.com> | 2026-03-04 19:50:28 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-04 19:50:28 +0000 |
| commit | 10754745a97c99449ef40db58bd425f5a91f9993 (patch) | |
| tree | 8aa9f57bcfb2157b9fbdc387c9021db6e6a38e46 /src/managers/screenshare/ScreenshareFrame.cpp | |
| parent | 8271cfc97b76d573f9122032d6cf5db256d63470 (diff) | |
render/cm: add ICC profile pipeline (#12711)
Adds an ICC profile pipeline, loading via config and applying via 3D LUTs.
Diffstat (limited to 'src/managers/screenshare/ScreenshareFrame.cpp')
| -rw-r--r-- | src/managers/screenshare/ScreenshareFrame.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/managers/screenshare/ScreenshareFrame.cpp b/src/managers/screenshare/ScreenshareFrame.cpp index 73ccf958..3c3438f8 100644 --- a/src/managers/screenshare/ScreenshareFrame.cpp +++ b/src/managers/screenshare/ScreenshareFrame.cpp @@ -159,9 +159,11 @@ void CScreenshareFrame::renderMonitor() { const auto PMONITOR = m_session->monitor(); - auto TEXTURE = makeShared<CTexture>(PMONITOR->m_output->state->state().buffer); + if (!g_pHyprOpenGL->m_monitorRenderResources.contains(PMONITOR)) + return; // wtf? + + auto TEXTURE = g_pHyprOpenGL->m_monitorRenderResources[PMONITOR].monitorMirrorFB.getTexture(); - const bool IS_CM_AWARE = PROTO::colorManagement && PROTO::colorManagement->isClientCMAware(m_session->m_client); g_pHyprOpenGL->m_renderData.transformDamage = false; g_pHyprOpenGL->m_renderData.noSimplify = true; @@ -171,11 +173,7 @@ void CScreenshareFrame::renderMonitor() { .translate(-m_session->m_captureBox.pos()); // vvvv kinda ass-backwards but that's how I designed the renderer... sigh. g_pHyprOpenGL->pushMonitorTransformEnabled(true); g_pHyprOpenGL->setRenderModifEnabled(false); - g_pHyprOpenGL->renderTexture(TEXTURE, monbox, - { - .cmBackToSRGB = !IS_CM_AWARE, - .cmBackToSRGBSource = !IS_CM_AWARE ? PMONITOR : nullptr, - }); + g_pHyprOpenGL->renderTexturePrimitive(TEXTURE, monbox); g_pHyprOpenGL->setRenderModifEnabled(true); g_pHyprOpenGL->popMonitorTransformEnabled(); |
