From 4dcc02ff1ef4d6ab6c10ece84c47892f12290908 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 7 Jan 2018 23:54:11 +0100 Subject: [PATCH] Launch draw call if buffer limits reached Note that this solution is a temporal patch, not properly tested and prone to fail, specially if matrix are pushed into the stack... --- src/rlgl.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/rlgl.c b/src/rlgl.c index b893d5e56..de81fde1b 100644 --- a/src/rlgl.c +++ b/src/rlgl.c @@ -644,6 +644,14 @@ void rlEnd(void) // as well as depth buffer bit-depth (16bit or 24bit or 32bit) // Correct increment formula would be: depthInc = (zfar - znear)/pow(2, bits) currentDepth += (1.0f/20000.0f); + + // TODO: Verify internal buffers limits + // NOTE: Before launching draw, verify no matrix are left in the stack! + // NOTE: Probably a lines/triangles margin should be left, rlEnd could be called + // after an undetermined number of triangles buffered (check shapes::DrawPoly()) + if ((lines.vCounter/2 >= MAX_LINES_BATCH - 2) || + (triangles.vCounter/3 >= MAX_TRIANGLES_BATCH - 16) || + (quads.vCounter/4 >= MAX_QUADS_BATCH - 2)) rlglDraw(); } // Define one vertex (position)