diff options
| author | Vaxry <43317083+vaxerski@users.noreply.github.com> | 2025-09-08 11:07:04 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-08 11:07:04 +0200 |
| commit | 02bb350bb3355b5f08e7b0635be10ee47c69346a (patch) | |
| tree | 5dd75680837fd2586980aa069308f5c39d246283 /src/protocols | |
| parent | bce43f74eb8e4570d0d043f5fc8257eef7a57399 (diff) | |
screencopy: add force 8 bit to fix 10b screensharing (#11623)
ref https://github.com/hyprwm/xdg-desktop-portal-hyprland/issues/270
Diffstat (limited to 'src/protocols')
| -rw-r--r-- | src/protocols/Screencopy.cpp | 2 | ||||
| -rw-r--r-- | src/protocols/Screencopy.hpp | 2 | ||||
| -rw-r--r-- | src/protocols/ToplevelExport.cpp | 2 |
3 files changed, 4 insertions, 2 deletions
diff --git a/src/protocols/Screencopy.cpp b/src/protocols/Screencopy.cpp index 804e144c..3a2e4b4a 100644 --- a/src/protocols/Screencopy.cpp +++ b/src/protocols/Screencopy.cpp @@ -60,7 +60,7 @@ CScreencopyFrame::CScreencopyFrame(SP<CZwlrScreencopyFrameV1> resource_, int32_t return; } - m_dmabufFormat = m_monitor->m_output->state->state().drmFormat; + m_dmabufFormat = g_pHyprOpenGL->getPreferredReadFormat(m_monitor.lock()); if (box_.width == 0 && box_.height == 0) m_box = {0, 0, sc<int>(m_monitor->m_size.x), sc<int>(m_monitor->m_size.y)}; diff --git a/src/protocols/Screencopy.hpp b/src/protocols/Screencopy.hpp index a44628fd..54b0d28c 100644 --- a/src/protocols/Screencopy.hpp +++ b/src/protocols/Screencopy.hpp @@ -108,6 +108,8 @@ class CScreencopyProtocol : public IWaylandProtocol { bool copyFrameDmabuf(CScreencopyFrame* frame); bool copyFrameShm(CScreencopyFrame* frame, const Time::steady_tp& now); + uint32_t drmFormatForMonitor(PHLMONITOR pMonitor); + friend class CScreencopyFrame; friend class CScreencopyClient; }; diff --git a/src/protocols/ToplevelExport.cpp b/src/protocols/ToplevelExport.cpp index 37e90b6f..eb0a39aa 100644 --- a/src/protocols/ToplevelExport.cpp +++ b/src/protocols/ToplevelExport.cpp @@ -114,7 +114,7 @@ CToplevelExportFrame::CToplevelExportFrame(SP<CHyprlandToplevelExportFrameV1> re return; } - m_dmabufFormat = PMONITOR->m_output->state->state().drmFormat; + m_dmabufFormat = g_pHyprOpenGL->getPreferredReadFormat(PMONITOR); m_box = {0, 0, sc<int>(m_window->m_realSize->value().x * PMONITOR->m_scale), sc<int>(m_window->m_realSize->value().y * PMONITOR->m_scale)}; |
