From 8ef63d9c0b81477d8d269bb1c8f752eec199656d Mon Sep 17 00:00:00 2001 From: pastalian <28638872+pastalian@users.noreply.github.com> Date: Sat, 4 Nov 2023 00:47:20 +0900 Subject: [PATCH] renderer: fix legacy_renderer build (#3732) In GLES2, `GL_RGB10_A2` and `GL_UNSIGNED_INT_2_10_10_10_REV` are defined as `GL_RGB10_A2_EXT` and `GL_UNSIGNED_INT_2_10_10_10_REV_EXT` respectively. --- src/helpers/MiscFunctions.cpp | 7 ++++++- src/render/Framebuffer.cpp | 8 +++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/helpers/MiscFunctions.cpp b/src/helpers/MiscFunctions.cpp index acb9cf20f887..b65f4a87946b 100644 --- a/src/helpers/MiscFunctions.cpp +++ b/src/helpers/MiscFunctions.cpp @@ -757,7 +757,12 @@ uint32_t drmFormatToGL(uint32_t drm) { case DRM_FORMAT_XRGB8888: case DRM_FORMAT_XBGR8888: return GL_RGBA; // doesn't matter, opengl is gucci in this case. case DRM_FORMAT_XRGB2101010: - case DRM_FORMAT_XBGR2101010: return GL_RGB10_A2; + case DRM_FORMAT_XBGR2101010: +#ifdef GLES2 + return GL_RGB10_A2_EXT; +#else + return GL_RGB10_A2; +#endif default: return GL_RGBA; } UNREACHABLE(); diff --git a/src/render/Framebuffer.cpp b/src/render/Framebuffer.cpp index e1f815cebcc3..1ebbc5851c4e 100644 --- a/src/render/Framebuffer.cpp +++ b/src/render/Framebuffer.cpp @@ -6,7 +6,13 @@ 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 ? GL_UNSIGNED_INT_2_10_10_10_REV : GL_UNSIGNED_BYTE; + 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; if (m_iFb == (uint32_t)-1) { firstAlloc = true;