From ddf3f2ffdb645f9a8687498bb6d797bf473e2e85 Mon Sep 17 00:00:00 2001 From: mittorn Date: Sun, 15 Oct 2023 03:38:22 +0300 Subject: [PATCH] gl2shim: Allow drawing huge QUADS sequences by splitting drawcalls on overflow --- ref/gl/gl2_shim/gl2_shim.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ref/gl/gl2_shim/gl2_shim.c b/ref/gl/gl2_shim/gl2_shim.c index 279600e9..ecb0c4a2 100644 --- a/ref/gl/gl2_shim/gl2_shim.c +++ b/ref/gl/gl2_shim/gl2_shim.c @@ -1065,7 +1065,15 @@ static void APIENTRY GL2_Vertex3f( GLfloat x, GLfloat y, GLfloat z ) } ++gl2wrap.end; - if( gl2wrap.end - gl2wrap.begin >= MAX_BEGINEND_VERTS ) + if( gl2wrap.prim == GL_QUADS ) + { + if( !( ( gl2wrap.end - gl2wrap.begin ) % 4 ) && gl2wrap.end > ( GL2_MAX_VERTS - 4 ) ) + { + GL2_FlushPrims(); + GL2_Begin( GL_QUADS ); + } + } + else if( gl2wrap.end - gl2wrap.begin >= MAX_BEGINEND_VERTS ) { GLenum prim = gl2wrap.prim; gEngfuncs.Con_DPrintf( S_ERROR "GL2_Vertex3f: Vertex buffer overflow!\n" );