From c80781045dfbf0ccb2214a3377ee9dc046ecbcab Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Thu, 28 Apr 2016 09:09:22 +1000 Subject: [PATCH] Skip drawing sprite groups we can never see. --- ClassicalSharp/Rendering/MapRenderer.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ClassicalSharp/Rendering/MapRenderer.cs b/ClassicalSharp/Rendering/MapRenderer.cs index dbad69a57..e3530769a 100644 --- a/ClassicalSharp/Rendering/MapRenderer.cs +++ b/ClassicalSharp/Rendering/MapRenderer.cs @@ -145,8 +145,16 @@ namespace ClassicalSharp.Renderers { DrawPart( info, ref part ); if( part.SpriteCount > 0 ) { + int groupCount = part.SpriteCount / 4; api.FaceCulling = true; - api.DrawIndexedVb_TrisT2fC4b( part.SpriteCount, 0 ); + if( info.DrawRight || info.DrawFront ) + api.DrawIndexedVb_TrisT2fC4b( groupCount, 0 ); + if( info.DrawLeft || info.DrawBack ) + api.DrawIndexedVb_TrisT2fC4b( groupCount, groupCount ); + if( info.DrawLeft || info.DrawFront ) + api.DrawIndexedVb_TrisT2fC4b( groupCount, groupCount * 2 ); + if( info.DrawRight || info.DrawBack ) + api.DrawIndexedVb_TrisT2fC4b( groupCount, groupCount * 3 ); api.FaceCulling = false; } game.Vertices += part.IndicesCount;