From b1d432413a7c5744e02a319a347c295c19980237 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Tue, 28 Nov 2023 12:50:06 +0300 Subject: [PATCH] scissor test fix --- src/window/Window.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/window/Window.cpp b/src/window/Window.cpp index eccdb44b..ad221942 100644 --- a/src/window/Window.cpp +++ b/src/window/Window.cpp @@ -178,7 +178,9 @@ void Window::pushScissor(vec4 area) { if (area.z < 0.0f || area.w < 0.0f) { glScissor(0, 0, 0, 0); } else { - glScissor(area.x, Window::height-area.w, area.z-area.x, area.w-area.y); + glScissor(area.x, Window::height-area.w, + std::max(0, int(area.z-area.x)), + std::max(0, int(area.w-area.y))); } scissorArea = area; } @@ -193,7 +195,9 @@ void Window::popScissor() { if (area.z < 0.0f || area.w < 0.0f) { glScissor(0, 0, 0, 0); } else { - glScissor(area.x, Window::height-area.w, area.z-area.x, area.w-area.y); + glScissor(area.x, Window::height-area.w, + std::max(0, int(area.z-area.x)), + std::max(0, int(area.w-area.y))); } if (scissorStack.empty()) { glDisable(GL_SCISSOR_TEST);