summaryrefslogtreecommitdiff
path: root/src/render/OpenGL.cpp
diff options
context:
space:
mode:
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;
+}