summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-08-28 14:32:06 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-08-28 14:32:06 +0200
commitf5f99c67007e5a7e48480e2f3551e200aea78842 (patch)
tree0bb0c6c78bf30039db38257159ce5b5d6b08ad94 /src/render/Renderer.cpp
parentcfa6c01df088b93d5ae6042e56740c437516fca5 (diff)
reset uv on invalid buffer source box
Diffstat (limited to 'src/render/Renderer.cpp')
-rw-r--r--src/render/Renderer.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index a96451b3..82c760be 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -420,6 +420,11 @@ void CHyprRenderer::calculateUVForWindowSurface(CWindow* pWindow, wlr_surface* p
uvTL = Vector2D(bufferSource.x / surfaceSize.x, bufferSource.y / surfaceSize.y);
uvBR = Vector2D((bufferSource.x + bufferSource.width) / surfaceSize.x, (bufferSource.y + bufferSource.height) / surfaceSize.y);
+ if (uvBR.x < 0.01f || uvBR.y < 0.01f) {
+ uvTL = Vector2D();
+ uvBR = Vector2D(1,1);
+ }
+
// TODO: (example: chromium) this still has a tiny "bump" at the end.
if (main) {
uvTL = uvTL + (Vector2D((double)geom.x / ((double)pWindow->m_uSurface.xdg->surface->current.width), (double)geom.y / ((double)pWindow->m_uSurface.xdg->surface->current.height)) * (((uvBR.x - uvTL.x) * surfaceSize.x) / surfaceSize.x));