diff options
| author | Tom Englund <tomenglund26@gmail.com> | 2025-05-15 11:13:24 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-15 10:13:24 +0100 |
| commit | 5ceb0ec15df6301cafe95a1b1f73b4f4bf255968 (patch) | |
| tree | 80d14a0fd1edbdda851a9ecc6138e810d99179ad /src | |
| parent | f707d86912fa75c19920818321aec99d1f287c46 (diff) | |
core: drop the legacy renderer (#10408)
* core: drop the legacy renderer
the legacy renderer is broken and barely used, drop it.
* Nix: drop support for legacyRenderer
---------
Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
Diffstat (limited to 'src')
| -rw-r--r-- | src/debug/CrashReporter.cpp | 3 | ||||
| -rw-r--r-- | src/debug/HyprCtl.cpp | 8 | ||||
| -rw-r--r-- | src/debug/HyprDebugOverlay.cpp | 3 | ||||
| -rw-r--r-- | src/debug/HyprNotificationOverlay.cpp | 3 | ||||
| -rw-r--r-- | src/helpers/Format.cpp | 111 | ||||
| -rw-r--r-- | src/hyprerror/HyprError.cpp | 3 | ||||
| -rw-r--r-- | src/includes.hpp | 6 | ||||
| -rw-r--r-- | src/protocols/Screencopy.cpp | 8 | ||||
| -rw-r--r-- | src/protocols/ToplevelExport.cpp | 6 | ||||
| -rw-r--r-- | src/render/Framebuffer.cpp | 14 | ||||
| -rw-r--r-- | src/render/OpenGL.cpp | 107 | ||||
| -rw-r--r-- | src/render/Texture.cpp | 6 | ||||
| -rw-r--r-- | src/render/decorations/CHyprGroupBarDecoration.cpp | 3 |
13 files changed, 39 insertions, 242 deletions
diff --git a/src/debug/CrashReporter.cpp b/src/debug/CrashReporter.cpp index e220b0ac..38552c51 100644 --- a/src/debug/CrashReporter.cpp +++ b/src/debug/CrashReporter.cpp @@ -109,9 +109,6 @@ void NCrashReporter::createAndSaveCrash(int sig) { finalCrashReport += "\nDate: "; finalCrashReport += GIT_COMMIT_DATE; finalCrashReport += "\nFlags:\n"; -#ifdef LEGACY_RENDERER - finalCrashReport += "legacyrenderer\n"; -#endif #if ISDEBUG finalCrashReport += "debug\n"; #endif diff --git a/src/debug/HyprCtl.cpp b/src/debug/HyprCtl.cpp index d3f9efa1..adfbab1e 100644 --- a/src/debug/HyprCtl.cpp +++ b/src/debug/HyprCtl.cpp @@ -931,13 +931,10 @@ std::string versionRequest(eHyprCtlOutputFormat format, std::string request) { HYPRLAND_VERSION, GIT_BRANCH, GIT_COMMIT_HASH, GIT_DIRTY, commitMsg, GIT_COMMIT_DATE, GIT_TAG, GIT_COMMITS, AQUAMARINE_VERSION, HYPRLANG_VERSION, HYPRUTILS_VERSION, HYPRCURSOR_VERSION, HYPRGRAPHICS_VERSION); -#if (!defined(LEGACY_RENDERER) && !ISDEBUG && !defined(NO_XWAYLAND)) +#if (!ISDEBUG && !defined(NO_XWAYLAND)) result += "no flags were set\n"; #else result += "flags set:\n"; -#ifdef LEGACY_RENDERER - result += "legacyrenderer\n"; -#endif #if ISDEBUG result += "debug\n"; #endif @@ -966,9 +963,6 @@ std::string versionRequest(eHyprCtlOutputFormat format, std::string request) { GIT_BRANCH, GIT_COMMIT_HASH, HYPRLAND_VERSION, (strcmp(GIT_DIRTY, "dirty") == 0 ? "true" : "false"), escapeJSONStrings(commitMsg), GIT_COMMIT_DATE, GIT_TAG, GIT_COMMITS, AQUAMARINE_VERSION, HYPRLANG_VERSION, HYPRUTILS_VERSION, HYPRCURSOR_VERSION, HYPRGRAPHICS_VERSION); -#ifdef LEGACY_RENDERER - result += "\"legacyrenderer\","; -#endif #if ISDEBUG result += "\"debug\","; #endif diff --git a/src/debug/HyprDebugOverlay.cpp b/src/debug/HyprDebugOverlay.cpp index 522b3a83..332800dd 100644 --- a/src/debug/HyprDebugOverlay.cpp +++ b/src/debug/HyprDebugOverlay.cpp @@ -263,11 +263,8 @@ void CHyprDebugOverlay::draw() { glBindTexture(GL_TEXTURE_2D, m_texture->m_texID); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - -#ifndef GLES2 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_BLUE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED); -#endif glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, PMONITOR->m_pixelSize.x, PMONITOR->m_pixelSize.y, 0, GL_RGBA, GL_UNSIGNED_BYTE, DATA); diff --git a/src/debug/HyprNotificationOverlay.cpp b/src/debug/HyprNotificationOverlay.cpp index f8dd69ab..4e17e797 100644 --- a/src/debug/HyprNotificationOverlay.cpp +++ b/src/debug/HyprNotificationOverlay.cpp @@ -238,11 +238,8 @@ void CHyprNotificationOverlay::draw(PHLMONITOR pMonitor) { glBindTexture(GL_TEXTURE_2D, m_texture->m_texID); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - -#ifndef GLES2 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_BLUE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED); -#endif glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, MONSIZE.x, MONSIZE.y, 0, GL_RGBA, GL_UNSIGNED_BYTE, DATA); diff --git a/src/helpers/Format.cpp b/src/helpers/Format.cpp index 6679e869..c3d72185 100644 --- a/src/helpers/Format.cpp +++ b/src/helpers/Format.cpp @@ -14,26 +14,18 @@ */ inline const std::vector<SPixelFormat> GLES3_FORMATS = { { - .drmFormat = DRM_FORMAT_ARGB8888, - .flipRB = true, -#ifndef GLES2 - .glFormat = GL_RGBA, -#else - .glFormat = GL_BGRA_EXT, -#endif + .drmFormat = DRM_FORMAT_ARGB8888, + .flipRB = true, + .glFormat = GL_RGBA, .glType = GL_UNSIGNED_BYTE, .withAlpha = true, .alphaStripped = DRM_FORMAT_XRGB8888, .bytesPerBlock = 4, }, { - .drmFormat = DRM_FORMAT_XRGB8888, - .flipRB = true, -#ifndef GLES2 - .glFormat = GL_RGBA, -#else - .glFormat = GL_BGRA_EXT, -#endif + .drmFormat = DRM_FORMAT_XRGB8888, + .flipRB = true, + .glFormat = GL_RGBA, .glType = GL_UNSIGNED_BYTE, .withAlpha = false, .alphaStripped = DRM_FORMAT_XRGB8888, @@ -104,96 +96,64 @@ inline const std::vector<SPixelFormat> GLES3_FORMATS = { .bytesPerBlock = 2, }, { - .drmFormat = DRM_FORMAT_XBGR2101010, - .glFormat = GL_RGBA, -#ifndef GLES2 - .glType = GL_UNSIGNED_INT_2_10_10_10_REV, -#else - .glType = GL_UNSIGNED_INT_2_10_10_10_REV_EXT, -#endif + .drmFormat = DRM_FORMAT_XBGR2101010, + .glFormat = GL_RGBA, + .glType = GL_UNSIGNED_INT_2_10_10_10_REV, .withAlpha = false, .alphaStripped = DRM_FORMAT_XBGR2101010, .bytesPerBlock = 4, }, { - .drmFormat = DRM_FORMAT_ABGR2101010, - .glFormat = GL_RGBA, -#ifndef GLES2 - .glType = GL_UNSIGNED_INT_2_10_10_10_REV, -#else - .glType = GL_UNSIGNED_INT_2_10_10_10_REV_EXT, -#endif + .drmFormat = DRM_FORMAT_ABGR2101010, + .glFormat = GL_RGBA, + .glType = GL_UNSIGNED_INT_2_10_10_10_REV, .withAlpha = true, .alphaStripped = DRM_FORMAT_XBGR2101010, .bytesPerBlock = 4, }, { - .drmFormat = DRM_FORMAT_XRGB2101010, - .glFormat = GL_RGBA, -#ifndef GLES2 - .glType = GL_UNSIGNED_INT_2_10_10_10_REV, -#else - .glType = GL_UNSIGNED_INT_2_10_10_10_REV_EXT, -#endif + .drmFormat = DRM_FORMAT_XRGB2101010, + .glFormat = GL_RGBA, + .glType = GL_UNSIGNED_INT_2_10_10_10_REV, .withAlpha = false, .alphaStripped = DRM_FORMAT_XRGB2101010, .bytesPerBlock = 4, }, { - .drmFormat = DRM_FORMAT_ARGB2101010, - .glFormat = GL_RGBA, -#ifndef GLES2 - .glType = GL_UNSIGNED_INT_2_10_10_10_REV, -#else - .glType = GL_UNSIGNED_INT_2_10_10_10_REV_EXT, -#endif + .drmFormat = DRM_FORMAT_ARGB2101010, + .glFormat = GL_RGBA, + .glType = GL_UNSIGNED_INT_2_10_10_10_REV, .withAlpha = true, .alphaStripped = DRM_FORMAT_XRGB2101010, .bytesPerBlock = 4, }, { - .drmFormat = DRM_FORMAT_XBGR16161616F, - .glFormat = GL_RGBA, -#ifndef GLES2 - .glType = GL_HALF_FLOAT, -#else - .glType = GL_HALF_FLOAT_OES, -#endif + .drmFormat = DRM_FORMAT_XBGR16161616F, + .glFormat = GL_RGBA, + .glType = GL_HALF_FLOAT, .withAlpha = false, .alphaStripped = DRM_FORMAT_XBGR16161616F, .bytesPerBlock = 8, }, { - .drmFormat = DRM_FORMAT_ABGR16161616F, - .glFormat = GL_RGBA, -#ifndef GLES2 - .glType = GL_HALF_FLOAT, -#else - .glType = GL_HALF_FLOAT_OES, -#endif + .drmFormat = DRM_FORMAT_ABGR16161616F, + .glFormat = GL_RGBA, + .glType = GL_HALF_FLOAT, .withAlpha = true, .alphaStripped = DRM_FORMAT_XBGR16161616F, .bytesPerBlock = 8, }, { - .drmFormat = DRM_FORMAT_XBGR16161616, -#ifndef GLES2 - .glFormat = GL_RGBA16UI, -#else - .glFormat = GL_RGBA16_EXT, -#endif + .drmFormat = DRM_FORMAT_XBGR16161616, + .glFormat = GL_RGBA16UI, .glType = GL_UNSIGNED_SHORT, .withAlpha = false, .alphaStripped = DRM_FORMAT_XBGR16161616, .bytesPerBlock = 8, }, { - .drmFormat = DRM_FORMAT_ABGR16161616, -#ifndef GLES2 - .glFormat = GL_RGBA16UI, -#else - .glFormat = GL_RGBA16_EXT, -#endif + .drmFormat = DRM_FORMAT_ABGR16161616, + .glFormat = GL_RGBA16UI, .glType = GL_UNSIGNED_SHORT, .withAlpha = true, .alphaStripped = DRM_FORMAT_XBGR16161616, @@ -290,12 +250,7 @@ uint32_t NFormatUtils::drmFormatToGL(DRMFormat 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: -#ifdef GLES2 - return GL_RGB10_A2_EXT; -#else - return GL_RGB10_A2; -#endif + case DRM_FORMAT_XBGR2101010: return GL_RGB10_A2; default: return GL_RGBA; } UNREACHABLE(); @@ -303,13 +258,7 @@ uint32_t NFormatUtils::drmFormatToGL(DRMFormat drm) { } uint32_t NFormatUtils::glFormatToType(uint32_t gl) { - return gl != 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; + return gl != GL_RGBA ? GL_UNSIGNED_INT_2_10_10_10_REV : GL_UNSIGNED_BYTE; } std::string NFormatUtils::drmFormatName(DRMFormat drm) { diff --git a/src/hyprerror/HyprError.cpp b/src/hyprerror/HyprError.cpp index d9f50db3..614fdd2e 100644 --- a/src/hyprerror/HyprError.cpp +++ b/src/hyprerror/HyprError.cpp @@ -146,11 +146,8 @@ void CHyprError::createQueued() { glBindTexture(GL_TEXTURE_2D, m_texture->m_texID); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - -#ifndef GLES2 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_BLUE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED); -#endif glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, PMONITOR->m_pixelSize.x, PMONITOR->m_pixelSize.y, 0, GL_RGBA, GL_UNSIGNED_BYTE, DATA); diff --git a/src/includes.hpp b/src/includes.hpp index c00fec97..e33e4e3f 100644 --- a/src/includes.hpp +++ b/src/includes.hpp @@ -17,15 +17,9 @@ #include <unistd.h> #include <wayland-server-core.h> -#ifdef LEGACY_RENDERER -#include <GLES2/gl2.h> -#include <GLES2/gl2ext.h> -#define GLES2 -#else #define GLES32 #include <GLES3/gl32.h> #include <GLES3/gl3ext.h> -#endif #ifdef NO_XWAYLAND #define XWAYLAND false diff --git a/src/protocols/Screencopy.cpp b/src/protocols/Screencopy.cpp index e0ef6783..1afa477f 100644 --- a/src/protocols/Screencopy.cpp +++ b/src/protocols/Screencopy.cpp @@ -264,11 +264,7 @@ bool CScreencopyFrame::copyShm() { g_pHyprOpenGL->renderTexture(g_pHyprOpenGL->m_screencopyDeniedTexture, texbox, 1); } -#ifndef GLES2 glBindFramebuffer(GL_READ_FRAMEBUFFER, fb.getFBID()); -#else - glBindFramebuffer(GL_FRAMEBUFFER, fb.getFBID()); -#endif const auto PFORMAT = NFormatUtils::getPixelFormatFromDRM(shm.format); if (!PFORMAT) { @@ -304,11 +300,7 @@ bool CScreencopyFrame::copyShm() { g_pHyprOpenGL->m_renderData.pMonitor.reset(); -#ifndef GLES2 glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); -#else - glBindFramebuffer(GL_FRAMEBUFFER, 0); -#endif LOGM(TRACE, "Copied frame via shm"); diff --git a/src/protocols/ToplevelExport.cpp b/src/protocols/ToplevelExport.cpp index 498bcba9..e50f1fce 100644 --- a/src/protocols/ToplevelExport.cpp +++ b/src/protocols/ToplevelExport.cpp @@ -281,10 +281,7 @@ bool CToplevelExportFrame::copyShm(const Time::steady_tp& now) { g_pHyprOpenGL->m_renderData.pMonitor = PMONITOR; outFB.bind(); -#ifndef GLES2 glBindFramebuffer(GL_READ_FRAMEBUFFER, outFB.getFBID()); -#endif - glPixelStorei(GL_PACK_ALIGNMENT, 1); auto glFormat = PFORMAT->flipRB ? GL_BGRA_EXT : GL_RGBA; @@ -318,10 +315,7 @@ bool CToplevelExportFrame::copyShm(const Time::steady_tp& now) { } outFB.unbind(); - -#ifndef GLES2 glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); -#endif return true; } diff --git a/src/render/Framebuffer.cpp b/src/render/Framebuffer.cpp index ab5a14a3..b3681c95 100644 --- a/src/render/Framebuffer.cpp +++ b/src/render/Framebuffer.cpp @@ -40,14 +40,11 @@ bool CFramebuffer::alloc(int w, int h, uint32_t drmFormat) { glBindFramebuffer(GL_FRAMEBUFFER, m_fb); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, m_tex->m_texID, 0); -// TODO: Allow this with gles2 -#ifndef GLES2 if (m_stencilTex) { glBindTexture(GL_TEXTURE_2D, m_stencilTex->m_texID); glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH24_STENCIL8, w, h, 0, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, nullptr); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D, m_stencilTex->m_texID, 0); } -#endif auto status = glCheckFramebufferStatus(GL_FRAMEBUFFER); RASSERT((status == GL_FRAMEBUFFER_COMPLETE), "Framebuffer incomplete, couldn't create! (FB status: {}, GL Error: 0x{:x})", status, (int)glGetError()); @@ -64,8 +61,6 @@ bool CFramebuffer::alloc(int w, int h, uint32_t drmFormat) { } void CFramebuffer::addStencil(SP<CTexture> tex) { - // TODO: Allow this with gles2 -#ifndef GLES2 m_stencilTex = tex; glBindTexture(GL_TEXTURE_2D, m_stencilTex->m_texID); glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH24_STENCIL8, m_size.x, m_size.y, 0, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, nullptr); @@ -79,15 +74,10 @@ void CFramebuffer::addStencil(SP<CTexture> tex) { glBindTexture(GL_TEXTURE_2D, 0); glBindFramebuffer(GL_FRAMEBUFFER, 0); -#endif } void CFramebuffer::bind() { -#ifndef GLES2 glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_fb); -#else - glBindFramebuffer(GL_FRAMEBUFFER, m_iFb); -#endif if (g_pHyprOpenGL) glViewport(0, 0, g_pHyprOpenGL->m_renderData.pMonitor->m_pixelSize.x, g_pHyprOpenGL->m_renderData.pMonitor->m_pixelSize.y); @@ -96,11 +86,7 @@ void CFramebuffer::bind() { } void CFramebuffer::unbind() { -#ifndef GLES2 glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); -#else - glBindFramebuffer(GL_FRAMEBUFFER, 0); -#endif } void CFramebuffer::release() { diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp index c4223085..20862a7a 100644 --- a/src/render/OpenGL.cpp +++ b/src/render/OpenGL.cpp @@ -162,24 +162,14 @@ void CHyprOpenGLImpl::initEGL(bool gbm) { auto attrsNoVer = attrs; -#ifndef GLES2 attrs.push_back(EGL_CONTEXT_MAJOR_VERSION); attrs.push_back(3); attrs.push_back(EGL_CONTEXT_MINOR_VERSION); attrs.push_back(2); -#else - attrs.push_back(EGL_CONTEXT_CLIENT_VERSION); - attrs.push_back(2); - m_eglContextVersion = EGL_CONTEXT_GLES_2_0; -#endif - attrs.push_back(EGL_NONE); m_eglContext = eglCreateContext(m_eglDisplay, EGL_NO_CONFIG_KHR, EGL_NO_CONTEXT, attrs.data()); if (m_eglContext == EGL_NO_CONTEXT) { -#ifdef GLES2 - RASSERT(false, "EGL: failed to create a context with GLES2.0"); -#endif Debug::log(WARN, "EGL: Failed to create a context with GLES3.2, retrying 3.0"); attrs = attrsNoVer; @@ -362,10 +352,6 @@ CHyprOpenGLImpl::CHyprOpenGLImpl() : m_drmFD(g_pCompositor->m_drmFD) { TRACY_GPU_CONTEXT; -#ifdef GLES2 - Debug::log(WARN, "!RENDERER: Using the legacy GLES2 renderer!"); -#endif - initDRMFormats(); initAssets(); @@ -669,7 +655,6 @@ GLuint CHyprOpenGLImpl::compileShader(const GLuint& type, std::string src, bool void CHyprOpenGLImpl::beginSimple(PHLMONITOR pMonitor, const CRegion& damage, SP<CRenderbuffer> rb, CFramebuffer* fb) { m_renderData.pMonitor = pMonitor; -#ifndef GLES2 const GLenum RESETSTATUS = glGetGraphicsResetStatus(); if (RESETSTATUS != GL_NO_ERROR) { std::string errStr = ""; @@ -682,7 +667,6 @@ void CHyprOpenGLImpl::beginSimple(PHLMONITOR pMonitor, const CRegion& damage, SP RASSERT(false, "Aborting, glGetGraphicsResetStatus returned {}. Cannot continue until proper GPU reset handling is implemented.", errStr); return; } -#endif TRACY_GPU_ZONE("RenderBeginSimple"); @@ -721,7 +705,6 @@ void CHyprOpenGLImpl::beginSimple(PHLMONITOR pMonitor, const CRegion& damage, SP void CHyprOpenGLImpl::begin(PHLMONITOR pMonitor, const CRegion& damage_, CFramebuffer* fb, std::optional<CRegion> finalDamage) { m_renderData.pMonitor = pMonitor; -#ifndef GLES2 const GLenum RESETSTATUS = glGetGraphicsResetStatus(); if (RESETSTATUS != GL_NO_ERROR) { std::string errStr = ""; @@ -734,7 +717,6 @@ void CHyprOpenGLImpl::begin(PHLMONITOR pMonitor, const CRegion& damage_, CFrameb RASSERT(false, "Aborting, glGetGraphicsResetStatus returned {}. Cannot continue until proper GPU reset handling is implemented.", errStr); return; } -#endif TRACY_GPU_ZONE("RenderBegin"); @@ -860,11 +842,7 @@ void CHyprOpenGLImpl::end() { // check for gl errors const GLenum ERR = glGetError(); -#ifdef GLES2 - if (ERR == GL_CONTEXT_LOST_KHR) /* We don't have infra to recover from this */ -#else if (ERR == GL_CONTEXT_LOST) /* We don't have infra to recover from this */ -#endif RASSERT(false, "glGetError at Opengl::end() returned GL_CONTEXT_LOST. Cannot continue until proper GPU reset handling is implemented."); } @@ -946,9 +924,7 @@ bool CHyprOpenGLImpl::initShaders() { shaders->TEXVERTSRC320 = processShader("tex320.vert", includes); GLuint prog; -#ifdef GLES2 - m_cmSupported = false; -#else + if (!*PCM) m_cmSupported = false; else { @@ -983,7 +959,6 @@ bool CHyprOpenGLImpl::initShaders() { "WARNING: CM Shader failed compiling, color management will not work. It's likely because your GPU is an old piece of garbage, don't file bug reports " "about this!"); } -#endif const auto FRAGSHADOW = processShader(m_cmSupported ? "shadow.frag" : "shadow_legacy.frag", includes); const auto FRAGBORDER1 = processShader(m_cmSupported ? "border.frag" : "border_legacy.frag", includes); @@ -1392,13 +1367,7 @@ void CHyprOpenGLImpl::renderRectWithDamage(const CBox& box, const CHyprColor& co Mat3x3 glMatrix = m_renderData.projection.copy().multiply(matrix); useProgram(m_shaders->m_shQUAD.program); - -#ifndef GLES2 glUniformMatrix3fv(m_shaders->m_shQUAD.proj, 1, GL_TRUE, glMatrix.getMatrix().data()); -#else - glMatrix.transpose(); - glUniformMatrix3fv(m_renderData.pCurrentMonData->m_shQUAD.proj, 1, GL_FALSE, glMatrix.getMatrix().data()); -#endif // premultiply the color as well as we don't work with straight alpha glUniform4f(m_shaders->m_shQUAD.color, col.r * col.a, col.g * col.a, col.b * col.a, col.a); @@ -1602,12 +1571,7 @@ void CHyprOpenGLImpl::renderTextureInternalWithDamage(SP<CTexture> tex, const CB passCMUniforms(*shader, imageDescription); } -#ifndef GLES2 glUniformMatrix3fv(shader->proj, 1, GL_TRUE, glMatrix.getMatrix().data()); -#else - glMatrix.transpose(); - glUniformMatrix3fv(shader->proj, 1, GL_FALSE, glMatrix.getMatrix().data()); -#endif glUniform1i(shader->tex, 0); if ((usingFinalShader && *PDT == 0) || CRASHING) { @@ -1735,15 +1699,8 @@ void CHyprOpenGLImpl::renderTexturePrimitive(SP<CTexture> tex, const CBox& box) glBindTexture(tex->m_target, tex->m_texID); useProgram(shader->program); - -#ifndef GLES2 glUniformMatrix3fv(shader->proj, 1, GL_TRUE, glMatrix.getMatrix().data()); -#else - glMatrix.transpose(); - glUniformMatrix3fv(shader->proj, 1, GL_FALSE, glMatrix.getMatrix().data()); -#endif glUniform1i(shader->tex, 0); - glBindVertexArray(shader->shaderVao); for (auto const& RECT : m_renderData.damage.getRects()) { @@ -1777,13 +1734,7 @@ void CHyprOpenGLImpl::renderTextureMatte(SP<CTexture> tex, const CBox& box, CFra SShader* shader = &m_shaders->m_shMATTE; useProgram(shader->program); - -#ifndef GLES2 glUniformMatrix3fv(shader->proj, 1, GL_TRUE, glMatrix.getMatrix().data()); -#else - glMatrix.transpose(); - glUniformMatrix3fv(shader->proj, 1, GL_FALSE, glMatrix.getMatrix().data()); -#endif glUniform1i(shader->tex, 0); glUniform1i(shader->alphaMatte, 1); @@ -1886,12 +1837,7 @@ CFramebuffer* CHyprOpenGLImpl::blurFramebufferWithDamage(float a, CRegion* origi 1.0f); } -#ifndef GLES2 glUniformMatrix3fv(m_shaders->m_shBLURPREPARE.proj, 1, GL_TRUE, glMatrix.getMatrix().data()); -#else - glMatrix.transpose(); - glUniformMatrix3fv(m_shaders->m_shBLURPREPARE.proj, 1, GL_FALSE, glMatrix.getMatrix().data()); -#endif glUniform1f(m_shaders->m_shBLURPREPARE.contrast, *PBLURCONTRAST); glUniform1f(m_shaders->m_shBLURPREPARE.brightness, *PBLURBRIGHTNESS); glUniform1i(m_shaders->m_shBLURPREPARE.tex, 0); @@ -1927,12 +1873,7 @@ CFramebuffer* CHyprOpenGLImpl::blurFramebufferWithDamage(float a, CRegion* origi useProgram(pShader->program); // prep two shaders -#ifndef GLES2 glUniformMatrix3fv(pShader->proj, 1, GL_TRUE, glMatrix.getMatrix().data()); -#else - glMatrix.transpose(); - glUniformMatrix3fv(pShader->proj, 1, GL_FALSE, glMatrix.getMatrix().data()); -#endif glUniform1f(pShader->radius, *PBLURSIZE * a); // this makes the blursize change with a if (pShader == &m_shaders->m_shBLUR1) { glUniform2f(m_shaders->m_shBLUR1.halfpixel, 0.5f / (m_renderData.pMonitor->m_pixelSize.x / 2.f), 0.5f / (m_renderData.pMonitor->m_pixelSize.y / 2.f)); @@ -1997,13 +1938,7 @@ CFramebuffer* CHyprOpenGLImpl::blurFramebufferWithDamage(float a, CRegion* origi glTexParameteri(currentTex->m_target, GL_TEXTURE_MIN_FILTER, GL_LINEAR); useProgram(m_shaders->m_shBLURFINISH.program); - -#ifndef GLES2 glUniformMatrix3fv(m_shaders->m_shBLURFINISH.proj, 1, GL_TRUE, glMatrix.getMatrix().data()); -#else - glMatrix.transpose(); - glUniformMatrix3fv(m_shaders->m_shBLURFINISH.proj, 1, GL_FALSE, glMatrix.getMatrix().data()); -#endif glUniform1f(m_shaders->m_shBLURFINISH.noise, *PBLURNOISE); glUniform1f(m_shaders->m_shBLURFINISH.brightness, *PBLURBRIGHTNESS); @@ -2341,13 +2276,7 @@ void CHyprOpenGLImpl::renderBorder(const CBox& box, const CGradientValueData& gr if (!skipCM) passCMUniforms(m_shaders->m_shBORDER1, SImageDescription{}); -#ifndef GLES2 glUniformMatrix3fv(m_shaders->m_shBORDER1.proj, 1, GL_TRUE, glMatrix.getMatrix().data()); -#else - glMatrix.transpose(); - glUniformMatrix3fv(m_shaders->m_shBORDER1.proj, 1, GL_FALSE, glMatrix.getMatrix().data()); -#endif - glUniform4fv(m_shaders->m_shBORDER1.gradient, grad.m_colorsOkLabA.size() / 4, (float*)grad.m_colorsOkLabA.data()); glUniform1i(m_shaders->m_shBORDER1.gradientLength, grad.m_colorsOkLabA.size() / 4); glUniform1f(m_shaders->m_shBORDER1.angle, (int)(grad.m_angle / (PI / 180.0)) % 360 * (PI / 180.0)); @@ -2428,14 +2357,7 @@ void CHyprOpenGLImpl::renderBorder(const CBox& box, const CGradientValueData& gr blend(true); useProgram(m_shaders->m_shBORDER1.program); - -#ifndef GLES2 glUniformMatrix3fv(m_shaders->m_shBORDER1.proj, 1, GL_TRUE, glMatrix.getMatrix().data()); -#else - glMatrix.transpose(); - glUniformMatrix3fv(m_shaders->m_shBORDER1.proj, 1, GL_FALSE, glMatrix.getMatrix().data()); -#endif - glUniform4fv(m_shaders->m_shBORDER1.gradient, grad1.m_colorsOkLabA.size() / 4, (float*)grad1.m_colorsOkLabA.data()); glUniform1i(m_shaders->m_shBORDER1.gradientLength, grad1.m_colorsOkLabA.size() / 4); glUniform1f(m_shaders->m_shBORDER1.angle, (int)(grad1.m_angle / (PI / 180.0)) % 360 * (PI / 180.0)); @@ -2515,12 +2437,7 @@ void CHyprOpenGLImpl::renderRoundedShadow(const CBox& box, int round, float roun if (!skipCM) passCMUniforms(m_shaders->m_shSHADOW, SImageDescription{}); -#ifndef GLES2 glUniformMatrix3fv(m_shaders->m_shSHADOW.proj, 1, GL_TRUE, glMatrix.getMatrix().data()); -#else - glMatrix.transpose(); - glUniformMatrix3fv(m_shaders->m_shSHADOW.proj, 1, GL_FALSE, glMatrix.getMatrix().data()); -#endif glUniform4f(m_shaders->m_shSHADOW.color, col.r, col.g, col.b, col.a * a); const auto TOPLEFT = Vector2D(range + round, range + round); @@ -2675,26 +2592,20 @@ SP<CTexture> CHyprOpenGLImpl::loadAsset(const std::string& filename) { tex->allocate(); tex->m_size = {cairo_image_surface_get_width(CAIROSURFACE), cairo_image_surface_get_height(CAIROSURFACE)}; - const GLint glIFormat = CAIROFORMAT == CAIRO_FORMAT_RGB96F ? -#ifdef GLES2 - GL_RGB32F_EXT : -#else - GL_RGB32F : -#endif - GL_RGBA; - const GLint glFormat = CAIROFORMAT == CAIRO_FORMAT_RGB96F ? GL_RGB : GL_RGBA; - const GLint glType = CAIROFORMAT == CAIRO_FORMAT_RGB96F ? GL_FLOAT : GL_UNSIGNED_BYTE; + const GLint glIFormat = CAIROFORMAT == CAIRO_FORMAT_RGB96F ? GL_RGB32F : GL_RGBA; + const GLint glFormat = CAIROFORMAT == CAIRO_FORMAT_RGB96F ? GL_RGB : GL_RGBA; + const GLint glType = CAIROFORMAT == CAIRO_FORMAT_RGB96F ? GL_FLOAT : GL_UNSIGNED_BYTE; const auto DATA = cairo_image_surface_get_data(CAIROSURFACE); glBindTexture(GL_TEXTURE_2D, tex->m_texID); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); -#ifndef GLES2 + if (CAIROFORMAT != CAIRO_FORMAT_RGB96F) { glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_BLUE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED); } -#endif + glTexImage2D(GL_TEXTURE_2D, 0, glIFormat, tex->m_size.x, tex->m_size.y, 0, glFormat, glType, DATA); cairo_surface_destroy(CAIROSURFACE); @@ -2772,10 +2683,8 @@ SP<CTexture> CHyprOpenGLImpl::renderText(const std::string& text, CHyprColor col glBindTexture(GL_TEXTURE_2D, tex->m_texID); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); -#ifndef GLES2 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_BLUE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED); -#endif glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, tex->m_size.x, tex->m_size.y, 0, GL_RGBA, GL_UNSIGNED_BYTE, DATA); cairo_destroy(CAIRO); @@ -2815,10 +2724,8 @@ void CHyprOpenGLImpl::initMissingAssetTexture() { glBindTexture(GL_TEXTURE_2D, tex->m_texID); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); -#ifndef GLES2 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_BLUE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED); -#endif glTexImage2D(GL_TEXTURE_2D, 0, glFormat, tex->m_size.x, tex->m_size.y, 0, glFormat, glType, DATA); cairo_surface_destroy(CAIROSURFACE); @@ -2928,10 +2835,8 @@ void CHyprOpenGLImpl::createBGTextureForMonitor(PHLMONITOR pMonitor) { glBindTexture(GL_TEXTURE_2D, tex->m_texID); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); -#ifndef GLES2 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_BLUE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED); -#endif glTexImage2D(GL_TEXTURE_2D, 0, glFormat, tex->m_size.x, tex->m_size.y, 0, glFormat, glType, DATA); cairo_surface_destroy(CAIROSURFACE); diff --git a/src/render/Texture.cpp b/src/render/Texture.cpp index 74770cb9..52b79e8d 100644 --- a/src/render/Texture.cpp +++ b/src/render/Texture.cpp @@ -72,12 +72,12 @@ void CTexture::createFromShm(uint32_t drmFormat, uint8_t* pixels, uint32_t strid GLCALL(glBindTexture(GL_TEXTURE_2D, m_texID)); GLCALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE)); GLCALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE)); -#ifndef GLES2 + if (format->flipRB) { GLCALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_BLUE)); GLCALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED)); } -#endif + GLCALL(glPixelStorei(GL_UNPACK_ROW_LENGTH_EXT, stride / format->bytesPerBlock)); GLCALL(glTexImage2D(GL_TEXTURE_2D, 0, format->glInternalFormat ? format->glInternalFormat : format->glFormat, size_.x, size_.y, 0, format->glFormat, format->glType, pixels)); GLCALL(glPixelStorei(GL_UNPACK_ROW_LENGTH_EXT, 0)); @@ -120,12 +120,10 @@ void CTexture::update(uint32_t drmFormat, uint8_t* pixels, uint32_t stride, cons auto rects = damage.copy().intersect(CBox{{}, m_size}).getRects(); -#ifndef GLES2 if (format->flipRB) { GLCALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_BLUE)); GLCALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED)); } -#endif for (auto const& rect : rects) { GLCALL(glPixelStorei(GL_UNPACK_ROW_LENGTH_EXT, stride / format->bytesPerBlock)); diff --git a/src/render/decorations/CHyprGroupBarDecoration.cpp b/src/render/decorations/CHyprGroupBarDecoration.cpp index ade4d372..84060e0d 100644 --- a/src/render/decorations/CHyprGroupBarDecoration.cpp +++ b/src/render/decorations/CHyprGroupBarDecoration.cpp @@ -332,11 +332,8 @@ static void renderGradientTo(SP<CTexture> tex, CGradientValueData* grad) { glBindTexture(GL_TEXTURE_2D, tex->m_texID); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - -#ifndef GLES2 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_BLUE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED); -#endif glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, bufferSize.x, bufferSize.y, 0, GL_RGBA, GL_UNSIGNED_BYTE, DATA); |
