ref: gl: extract studio draw mesh branch into it's own function, refactoring

This commit is contained in:
Alibek Omarov
2026-08-05 04:17:40 +05:00
parent fe62e61aa4
commit 46add4784b
+38 -20
View File
@@ -1905,6 +1905,43 @@ static void R_StudioDrawArrays( uint startverts, uint startelems )
pglDisableClientState( GL_COLOR_ARRAY );
}
/*
===============
R_StudioSubmitMesh
===============
*/
static void R_StudioSubmitMesh( short *ptricmds, vec3_t *pstudionorms, float s, float t, float shellscale, int tesslevel )
{
if( tesslevel > 0 )
{
// R_StudioDrawTruformMesh( ptricmds, pstudionorms, s, t, shellscale, tesslevel );
}
else if( r_studio_drawelements.value )
{
uint startArrayVerts = g_studio.numverts;
uint startArrayElems = g_studio.numelems;
if( FBitSet( g_nFaceFlags, STUDIO_NF_CHROME ))
R_StudioBuildArrayChromeMesh( ptricmds, pstudionorms, s, t, shellscale );
else if( FBitSet( g_nFaceFlags, STUDIO_NF_UV_COORDS ))
R_StudioBuildArrayFloatMesh( ptricmds, pstudionorms );
else
R_StudioBuildArrayNormalMesh( ptricmds, pstudionorms, s, t );
R_StudioDrawArrays( startArrayVerts, startArrayElems );
}
else
{
if( FBitSet( g_nFaceFlags, STUDIO_NF_CHROME ))
R_StudioDrawChromeMesh( ptricmds, pstudionorms, s, t, shellscale );
else if( FBitSet( g_nFaceFlags, STUDIO_NF_UV_COORDS ))
R_StudioDrawFloatMesh( ptricmds, pstudionorms );
else
R_StudioDrawNormalMesh( ptricmds, pstudionorms, s, t );
}
}
/*
===============
R_StudioDrawPoints
@@ -2041,8 +2078,6 @@ static void R_StudioDrawPoints( void )
for( int j = 0; j < m_pSubModel->nummesh; j++ )
{
float oldblend = tr.blend;
uint startArrayVerts = g_studio.numverts;
uint startArrayElems = g_studio.numelems;
pmesh = g_studio.meshes[j].mesh;
short *ptricmds = (short *)((byte *)m_pStudioHeader + pmesh->triindex);
@@ -2074,24 +2109,7 @@ static void R_StudioDrawPoints( void )
R_StudioSetupSkin( m_pStudioHeader, pskinref[pmesh->skinref] );
if( r_studio_drawelements.value )
{
if( FBitSet( g_nFaceFlags, STUDIO_NF_CHROME ))
R_StudioBuildArrayChromeMesh( ptricmds, pstudionorms, s, t, shellscale );
else if( FBitSet( g_nFaceFlags, STUDIO_NF_UV_COORDS ))
R_StudioBuildArrayFloatMesh( ptricmds, pstudionorms );
else R_StudioBuildArrayNormalMesh( ptricmds, pstudionorms, s, t );
R_StudioDrawArrays( startArrayVerts, startArrayElems );
}
else
{
if( FBitSet( g_nFaceFlags, STUDIO_NF_CHROME ))
R_StudioDrawChromeMesh( ptricmds, pstudionorms, s, t, shellscale );
else if( FBitSet( g_nFaceFlags, STUDIO_NF_UV_COORDS ))
R_StudioDrawFloatMesh( ptricmds, pstudionorms );
else R_StudioDrawNormalMesh( ptricmds, pstudionorms, s, t );
}
R_StudioSubmitMesh( ptricmds, pstudionorms, s, t, shellscale, 0 );
if( FBitSet( g_nFaceFlags, STUDIO_NF_MASKED ))
{