summaryrefslogtreecommitdiff
path: root/src/render/OpenGL.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2023-12-01 17:20:56 +0000
committerVaxry <vaxry@vaxry.net>2023-12-01 17:20:56 +0000
commit9c09f2a847a1372c73cf67dc9e7e9ebe309b142e (patch)
tree5f8b5ed8b1bd9c1cf23155ffbfded231983cd21e /src/render/OpenGL.cpp
parent8440a30231ea41a6b1dacc60a28837b265a6efec (diff)
screencopy: fix shm exports with 10-bit
fixes #4019
Diffstat (limited to 'src/render/OpenGL.cpp')
-rw-r--r--src/render/OpenGL.cpp13
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;
+}