From 224bf07930e47f479a9bd125945dab085d10fe26 Mon Sep 17 00:00:00 2001 From: mittorn Date: Tue, 26 Mar 2019 06:01:20 +0700 Subject: [PATCH] ref_soft: Fix TRIANGLE_STRIP draw --- r_triapi.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/r_triapi.c b/r_triapi.c index 27210b52..15011d4b 100644 --- a/r_triapi.c +++ b/r_triapi.c @@ -244,23 +244,14 @@ void TriVertex3f( float x, float y, float z ) } if( mode == TRI_TRIANGLE_STRIP ) { - R_SetupFinalVert( &triv[vertcount], x, y, z, 0,0,0); - vertcount++; - if( vertcount == 3 ) + if( vertcount > 2 ) { + R_SetupFinalVert( &triv[(vertcount + 1) & 1 + 1], x, y, z, 0,0,0); R_RenderTriangle( triv ); - finalvert_t fv = triv[0]; - - triv[0] = triv[2]; - triv[2] = fv; - R_RenderTriangle( triv ); - fv = triv[0]; - triv[0] = triv[2]; - triv[2] = fv; - triv[0] = triv[1]; - triv[1] = triv[2]; - vertcount = 2; } + else + R_SetupFinalVert( &triv[vertcount], x, y, z, 0,0,0); + vertcount++; } }