summaryrefslogtreecommitdiff
path: root/src/render/OpenGL.cpp
diff options
context:
space:
mode:
authorFelix Dick <felix.dick@web.de>2022-10-07 18:59:21 +0200
committerFelix Dick <felix.dick@web.de>2022-10-07 20:55:41 +0200
commitbbdfb7853d41717ad5712fd8a13de11cafc0da8f (patch)
treeb5c48d217c312725c840b1cde3f67823f28d13b3 /src/render/OpenGL.cpp
parent7faa3c367d22a44417a984d9cb50b3eb82258c63 (diff)
Transform the box data send to texture shaders.
Diffstat (limited to 'src/render/OpenGL.cpp')
-rw-r--r--src/render/OpenGL.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp
index 38672353..373add64 100644
--- a/src/render/OpenGL.cpp
+++ b/src/render/OpenGL.cpp
@@ -443,17 +443,17 @@ void CHyprOpenGLImpl::renderTextureInternalWithDamage(const CTexture& tex, wlr_b
glUniform1f(shader->alpha, alpha / 255.f);
glUniform1i(shader->discardOpaque, (int)discardOpaque);
- // round is in px
- // so we need to do some maf
+ wlr_box transformedBox;
+ wlr_box_transform(&transformedBox, pBox, wlr_output_transform_invert(m_RenderData.pMonitor->transform),
+ m_RenderData.pMonitor->vecTransformedSize.x, m_RenderData.pMonitor->vecTransformedSize.y);
- const auto TOPLEFT = Vector2D(round, round);
- const auto BOTTOMRIGHT = Vector2D(pBox->width - round, pBox->height - round);
- const auto FULLSIZE = Vector2D(pBox->width, pBox->height);
+ const auto TOPLEFT = Vector2D(transformedBox.x, transformedBox.y);
+ const auto FULLSIZE = Vector2D(transformedBox.width, transformedBox.height);
static auto *const PMULTISAMPLEEDGES = &g_pConfigManager->getConfigValuePtr("decoration:multisample_edges")->intValue;
// Rounded corners
- glUniform2f(shader->topLeft, pBox->x, pBox->y);
- glUniform2f(shader->fullSize, pBox->width, pBox->height);
+ glUniform2f(shader->topLeft, TOPLEFT.x, TOPLEFT.y);
+ glUniform2f(shader->fullSize, FULLSIZE.x ,FULLSIZE.y);
glUniform1f(shader->radius, round);
glUniform1i(shader->primitiveMultisample, (int)(*PMULTISAMPLEEDGES == 1 && round != 0 && !noAA));