restructured RSurf_DrawLightmap to become RSurf_DrawBatch_Lightmap which processes...
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Mon, 1 May 2006 09:00:22 +0000 (09:00 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Mon, 1 May 2006 09:00:22 +0000 (09:00 +0000)
commitbc57153813b23cf3195adcb6b01e25345441ed6c
tree54cfd147f75a0096e205a4f555a6005cbb960822
parentda1866f3c048815988f5986896f72d3c29d749f4
restructured RSurf_DrawLightmap to become RSurf_DrawBatch_Lightmap which processes all arrays and sets things up perfectly, then renders all the surfaces with a call to R_DrawBatch_Simple
added dynamic surface-merging to R_DrawBatch_Simple, depending on the new r_batchmode cvar it either renders surfaces individually (as before), consecutively (consecutively numbered surfaces are rendered with one call for their combined triangle elements range), or by memcpy merging elements into one array (this has rather chaotic vertex ranges so gl_lockarrays is disabled in this code because it is a consistent speed loss in this case)
this optimization increased fps by 4.7% in timedemo bigass1, and offers bigger gains in very high poly q1bsp and q3bsp maps

git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@6342 d7cf8633-e32d-0410-b094-e92efae38249
gl_rmain.c