diff options
| author | Vaxry <vaxry@vaxry.net> | 2023-12-01 17:20:56 +0000 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2023-12-01 17:20:56 +0000 |
| commit | 9c09f2a847a1372c73cf67dc9e7e9ebe309b142e (patch) | |
| tree | 5f8b5ed8b1bd9c1cf23155ffbfded231983cd21e /src/render/OpenGL.cpp | |
| parent | 8440a30231ea41a6b1dacc60a28837b265a6efec (diff) | |
screencopy: fix shm exports with 10-bit
fixes #4019
Diffstat (limited to 'src/render/OpenGL.cpp')
| -rw-r--r-- | src/render/OpenGL.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp index dbdabdad..4eb45d8f 100644 --- a/src/render/OpenGL.cpp +++ b/src/render/OpenGL.cpp @@ -2064,3 +2064,16 @@ void CHyprOpenGLImpl::bindBackOnMain() { void CHyprOpenGLImpl::setMonitorTransformEnabled(bool enabled) { m_bEndFrame = !enabled; } + +uint32_t CHyprOpenGLImpl::getPreferredReadFormat(CMonitor* pMonitor) { + if (g_pHyprRenderer->isNvidia()) + return DRM_FORMAT_XRGB8888; + + if (pMonitor->drmFormat == DRM_FORMAT_XRGB8888) + return DRM_FORMAT_XRGB8888; + if (pMonitor->drmFormat == DRM_FORMAT_XBGR8888) + return DRM_FORMAT_XBGR8888; + if (pMonitor->drmFormat == DRM_FORMAT_XRGB2101010 || pMonitor->drmFormat == DRM_FORMAT_XBGR2101010) + return DRM_FORMAT_XBGR2101010; + return DRM_FORMAT_INVALID; +} |
