From 00529a21ed4f15461d5c9c818e9139485b4c7326 Mon Sep 17 00:00:00 2001 From: Sergey Lipskiy Date: Sat, 20 Nov 2021 17:20:40 +0700 Subject: [PATCH] Add sanity test for current scissor to renderTriangles and renderAndDrawTriangles --- src/SoftwareRender.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/SoftwareRender.cpp b/src/SoftwareRender.cpp index 0a00632d..4a3613c5 100644 --- a/src/SoftwareRender.cpp +++ b/src/SoftwareRender.cpp @@ -258,6 +258,9 @@ f32 renderScreenSpaceTriangles(const SPVertex *_pVertices, u32 _numElements) f32 renderTriangles(const SPVertex * _pVertices, const u16 * _pElements, u32 _numElements) { + if (gDP.scissor.ulx > gDP.scissor.lrx || gDP.scissor.uly > gDP.scissor.lry) + return 0.0f; + vertexclip vclip[16]; vertexi vdraw[12]; const SPVertex * vsrc[4]; @@ -346,6 +349,9 @@ f32 renderAndDrawTriangles(const SPVertex *_pVertices, bool _flatColors, GraphicsDrawer::Statistics & _statistics) { + if (gDP.scissor.ulx > gDP.scissor.lrx || gDP.scissor.uly > gDP.scissor.lry) + return 0.0f; + f32 maxY = 0.0f; std::vector vResult; vResult.reserve(_numElements * 3);