diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-04-13 17:34:13 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-04-13 17:34:13 +0200 |
| commit | 084e922642686cac2b03ea88fceb09c0506d7ed2 (patch) | |
| tree | b886ea37a2f1fec275da14d62fa32c94288e3d6c /src/render | |
| parent | 4b7a1a471f5eb4f52a6dac2379c17b2f85b49e61 (diff) | |
Added legacy GLES2 renderer option
Diffstat (limited to 'src/render')
| -rw-r--r-- | src/render/Framebuffer.cpp | 8 | ||||
| -rw-r--r-- | src/render/OpenGL.cpp | 10 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/render/Framebuffer.cpp b/src/render/Framebuffer.cpp index 3724da37..e27ba486 100644 --- a/src/render/Framebuffer.cpp +++ b/src/render/Framebuffer.cpp @@ -30,15 +30,17 @@ bool CFramebuffer::alloc(int w, int h) { glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, m_cTex.m_iTexID, 0); + // TODO: Allow this with gles2 + #ifndef GLES2 if (m_pStencilTex) { glBindTexture(GL_TEXTURE_2D, m_pStencilTex->m_iTexID); - glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH24_STENCIL8, w, h, 0, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, 0); glBindFramebuffer(GL_FRAMEBUFFER, m_iFb); glBindTexture(GL_TEXTURE_2D, m_pStencilTex->m_iTexID); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D, m_pStencilTex->m_iTexID, 0); } + #endif auto status = glCheckFramebufferStatus(GL_FRAMEBUFFER); RASSERT((status == GL_FRAMEBUFFER_COMPLETE), "Framebuffer incomplete, couldn't create! (FB status: %i)", status); @@ -55,7 +57,11 @@ bool CFramebuffer::alloc(int w, int h) { } void CFramebuffer::bind() { + #ifndef GLES2 glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_iFb); + #else + glBindFramebuffer(GL_FRAMEBUFFER, m_iFb); + #endif glViewport(0, 0, g_pHyprOpenGL->m_RenderData.pMonitor->vecSize.x, g_pHyprOpenGL->m_RenderData.pMonitor->vecSize.y); } diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp index 8b1b130d..520ea558 100644 --- a/src/render/OpenGL.cpp +++ b/src/render/OpenGL.cpp @@ -18,6 +18,10 @@ CHyprOpenGLImpl::CHyprOpenGLImpl() { Debug::log(LOG, "Renderer: %s", glGetString(GL_RENDERER)); Debug::log(LOG, "Supported extensions size: %d", std::count(m_szExtensions.begin(), m_szExtensions.end(), ' ')); + #ifdef GLES2 + Debug::log(WARN, "!RENDERER: Using the legacy GLES2 renderer!"); + #endif + // Init shaders GLuint prog = createProgram(QUADVERTSRC, QUADFRAGSRC); @@ -509,7 +513,11 @@ void CHyprOpenGLImpl::makeWindowSnapshot(CWindow* pWindow) { g_pConfigManager->setInt("decoration:blur", BLURVAL); // restore original fb + #ifndef GLES2 glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_iCurrentOutputFb); + #else + glBindFramebuffer(GL_FRAMEBUFFER, m_iCurrentOutputFb); + #endif glViewport(0, 0, g_pHyprOpenGL->m_RenderData.pMonitor->vecSize.x, g_pHyprOpenGL->m_RenderData.pMonitor->vecSize.y); end(); @@ -575,8 +583,10 @@ void CHyprOpenGLImpl::createBGTextureForMonitor(SMonitor* pMonitor) { glBindTexture(GL_TEXTURE_2D, PTEX->m_iTexID); 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->vecSize.x, pMonitor->vecSize.y, 0, GL_RGBA, GL_UNSIGNED_BYTE, DATA); cairo_surface_destroy(CAIROSURFACE); |
