aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorvaxerski <[email protected]>2022-10-22 21:10:40 +0100
committervaxerski <[email protected]>2022-10-22 21:10:49 +0100
commit29958677606ae3bc46b871303f2b2d956db90bfc (patch)
treee9912cf156f8cdc3a8189bd934a785a70f630c4a /src
parentc132f5a91fab148fc05b1e283edcc13bd7d33fb2 (diff)
downloadHyprland-29958677606ae3bc46b871303f2b2d956db90bfc.tar.gz
Hyprland-29958677606ae3bc46b871303f2b2d956db90bfc.zip
Transpose matrices on LEGACY_RENDERER
Diffstat (limited to 'src')
-rw-r--r--src/render/OpenGL.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp
index 1f910d30..d52fee79 100644
--- a/src/render/OpenGL.cpp
+++ b/src/render/OpenGL.cpp
@@ -329,7 +329,12 @@ void CHyprOpenGLImpl::renderRectWithDamage(wlr_box* box, const CColor& col, pixm
glUseProgram(m_RenderData.pCurrentMonData->m_shQUAD.program);
+#ifndef GLES2
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shQUAD.proj, 1, GL_TRUE, glMatrix);
+#else
+ wlr_matrix_transpose(glMatrix, glMatrix);
+ glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shQUAD.proj, 1, GL_FALSE, glMatrix);
+#endif
glUniform4f(m_RenderData.pCurrentMonData->m_shQUAD.color, col.r / 255.f, col.g / 255.f, col.b / 255.f, col.a / 255.f);
wlr_box transformedBox;
@@ -438,7 +443,12 @@ void CHyprOpenGLImpl::renderTextureInternalWithDamage(const CTexture& tex, wlr_b
glUseProgram(shader->program);
+#ifndef GLES2
glUniformMatrix3fv(shader->proj, 1, GL_TRUE, glMatrix);
+#else
+ wlr_matrix_transpose(glMatrix, glMatrix);
+ glUniformMatrix3fv(shader->proj, 1, GL_FALSE, glMatrix);
+#endif
glUniform1i(shader->tex, 0);
glUniform1f(shader->alpha, alpha / 255.f);
glUniform1i(shader->discardOpaque, (int)discardOpaque);
@@ -562,7 +572,12 @@ CFramebuffer* CHyprOpenGLImpl::blurMainFramebufferWithDamage(float a, wlr_box* p
glUseProgram(pShader->program);
// prep two shaders
+#ifndef GLES2
glUniformMatrix3fv(pShader->proj, 1, GL_TRUE, glMatrix);
+#else
+ wlr_matrix_transpose(glMatrix, glMatrix);
+ glUniformMatrix3fv(pShader->proj, 1, GL_FALSE, glMatrix);
+#endif
glUniform1f(pShader->radius, *PBLURSIZE * (a / 255.f)); // this makes the blursize change with a
if (pShader == &m_RenderData.pCurrentMonData->m_shBLUR1)
glUniform2f(m_RenderData.pCurrentMonData->m_shBLUR1.halfpixel, 0.5f / (m_RenderData.pMonitor->vecPixelSize.x / 2.f), 0.5f / (m_RenderData.pMonitor->vecPixelSize.y / 2.f));
@@ -843,7 +858,12 @@ void CHyprOpenGLImpl::renderBorder(wlr_box* box, const CColor& col, int round) {
glUseProgram(m_RenderData.pCurrentMonData->m_shBORDER1.program);
+#ifndef GLES2
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shBORDER1.proj, 1, GL_TRUE, glMatrix);
+#else
+ wlr_matrix_transpose(glMatrix, glMatrix);
+ glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shBORDER1.proj, 1, GL_FALSE, glMatrix);
+#endif
glUniform4f(m_RenderData.pCurrentMonData->m_shBORDER1.color, col.r / 255.f, col.g / 255.f, col.b / 255.f, col.a / 255.f);
const auto TOPLEFT = Vector2D(round, round);
@@ -1103,7 +1123,12 @@ void CHyprOpenGLImpl::renderRoundedShadow(wlr_box* box, int round, int range, fl
glUseProgram(m_RenderData.pCurrentMonData->m_shSHADOW.program);
+#ifndef GLES2
glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shSHADOW.proj, 1, GL_TRUE, glMatrix);
+#else
+ wlr_matrix_transpose(glMatrix, glMatrix);
+ glUniformMatrix3fv(m_RenderData.pCurrentMonData->m_shSHADOW.proj, 1, GL_FALSE, glMatrix);
+#endif
glUniform4f(m_RenderData.pCurrentMonData->m_shSHADOW.color, col.r / 255.f, col.g / 255.f, col.b / 255.f, col.a / 255.f * a);
const auto TOPLEFT = Vector2D(range + round, range + round);