parent
8440a30231
commit
9c09f2a847
7 changed files with 37 additions and 30 deletions
|
|
@ -6,13 +6,7 @@ bool CFramebuffer::alloc(int w, int h, uint32_t drmFormat) {
|
|||
RASSERT((w > 1 && h > 1), "cannot alloc a FB with negative / zero size! (attempted {}x{})", w, h);
|
||||
|
||||
uint32_t glFormat = drmFormatToGL(drmFormat);
|
||||
uint32_t glType = glFormat != GL_RGBA ?
|
||||
#ifdef GLES2
|
||||
GL_UNSIGNED_INT_2_10_10_10_REV_EXT :
|
||||
#else
|
||||
GL_UNSIGNED_INT_2_10_10_10_REV :
|
||||
#endif
|
||||
GL_UNSIGNED_BYTE;
|
||||
uint32_t glType = glFormatToType(glFormat);
|
||||
|
||||
if (m_iFb == (uint32_t)-1) {
|
||||
firstAlloc = true;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -158,6 +158,8 @@ class CHyprOpenGLImpl {
|
|||
void renderOffToMain(CFramebuffer* off);
|
||||
void bindBackOnMain();
|
||||
|
||||
uint32_t getPreferredReadFormat(CMonitor* pMonitor);
|
||||
|
||||
SCurrentRenderData m_RenderData;
|
||||
|
||||
GLint m_iCurrentOutputFb = 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue