From 8662ecba03bb4b4626963c080aa9353a6aa38854 Mon Sep 17 00:00:00 2001 From: UjinT34 <41110182+UjinT34@users.noreply.github.com> Date: Wed, 11 Mar 2026 23:48:48 +0300 Subject: renderer: fix share window projection (#13695) --- src/render/Renderer.cpp | 5 ++++- src/render/Renderer.hpp | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'src/render') diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index bf3740da..b79ca13f 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -2129,6 +2129,7 @@ void IHyprRenderer::setProjectionType(eRenderProjectionType projectionType) { case RPT_MONITOR: m_renderData.targetProjection = m_renderData.pMonitor->getTransformMatrix(); break; case RPT_MIRROR: m_renderData.targetProjection = getMirrorProjection(m_renderData.pMonitor); break; case RPT_FB: m_renderData.targetProjection = getFBProjection(m_renderData.pMonitor, m_renderData.fbSize); break; + case RPT_EXPORT: m_renderData.targetProjection = Mat3x3::identity(); break; default: UNREACHABLE(); } } @@ -2140,7 +2141,9 @@ Mat3x3 IHyprRenderer::getBoxProjection(const CBox& box, std::optional transform) { - return m_renderData.pMonitor->getScaleMatrix().copy().multiply(getBoxProjection(box, transform)); + return (m_renderData.projectionType == RPT_EXPORT ? Mat3x3::outputProjection(m_renderData.fbSize, HYPRUTILS_TRANSFORM_NORMAL) : m_renderData.pMonitor->getScaleMatrix()) + .copy() + .multiply(getBoxProjection(box, transform)); } SP IHyprRenderer::blurMainFramebuffer(float a, CRegion* originalDamage) { diff --git a/src/render/Renderer.hpp b/src/render/Renderer.hpp index 1d099ee3..6f92dc50 100644 --- a/src/render/Renderer.hpp +++ b/src/render/Renderer.hpp @@ -77,6 +77,7 @@ enum eRenderProjectionType : uint8_t { RPT_MONITOR, RPT_MIRROR, RPT_FB, + RPT_EXPORT, }; struct SRenderData { -- cgit v1.2.3