mirror of
https://github.com/FWGS/xash3d-fwgs.git
synced 2026-08-11 06:32:10 +08:00
ref: gl: extract studio draw mesh branch into it's own function, refactoring
This commit is contained in:
+38
-20
@@ -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 ))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user