mirror of
https://github.com/celisej567/source-engine.git
synced 2026-01-04 18:09:53 +03:00
amd64: fix multithread, fix vgui, fix physmodels
This commit is contained in:
@@ -2331,7 +2331,16 @@ void CDetailObjectSystem::RenderFastSprites( const Vector &viewOrigin, const Vec
|
||||
color[2] = pquad->m_RGBColor[0][2];
|
||||
color[3] = pColorsCasted[MANTISSA_LSB_OFFSET];
|
||||
|
||||
DetailPropSpriteDict_t *pDict = pquad->m_pSpriteDefs[0];
|
||||
DetailPropSpriteDict_t *pDict;
|
||||
#ifdef PLATFORM_64BITS
|
||||
if( nSubIdx == 1 )
|
||||
pDict = ((FastSpriteQuadBuildoutBufferNonSIMDView_t*)((intp)pquad+4))->m_pSpriteDefs[0];
|
||||
else if( nSubIdx == 3 )
|
||||
pDict = ((FastSpriteQuadBuildoutBufferNonSIMDView_t*)((intp)pquad-4))->m_pSpriteDefs[0];
|
||||
else
|
||||
#endif
|
||||
pDict = pquad->m_pSpriteDefs[0];
|
||||
|
||||
|
||||
meshBuilder.Position3f( pquad->m_flX0[0], pquad->m_flY0[0], pquad->m_flZ0[0] );
|
||||
meshBuilder.Color4ubv( color );
|
||||
@@ -2545,6 +2554,7 @@ void CDetailObjectSystem::RenderFastTranslucentDetailObjectsInLeaf( const Vector
|
||||
int nToDraw = MIN( nCount, nQuadsRemaining );
|
||||
nCount -= nToDraw;
|
||||
nQuadsRemaining -= nToDraw;
|
||||
|
||||
while( nToDraw-- )
|
||||
{
|
||||
// draw the sucker
|
||||
@@ -2553,17 +2563,28 @@ void CDetailObjectSystem::RenderFastTranslucentDetailObjectsInLeaf( const Vector
|
||||
|
||||
FastSpriteQuadBuildoutBufferNonSIMDView_t const *pquad = pQuadBuffer+nSIMDIdx;
|
||||
|
||||
|
||||
// voodoo - since everything is in 4s, offset structure pointer by a couple of floats to handle sub-index
|
||||
pquad = (FastSpriteQuadBuildoutBufferNonSIMDView_t const *) ( ( (intp) ( pquad ) )+ ( nSubIdx << 2 ) );
|
||||
|
||||
uint8 const *pColorsCasted = reinterpret_cast<uint8 const *> ( pquad->m_Alpha );
|
||||
|
||||
|
||||
uint8 color[4];
|
||||
color[0] = pquad->m_RGBColor[0][0];
|
||||
color[1] = pquad->m_RGBColor[0][1];
|
||||
color[2] = pquad->m_RGBColor[0][2];
|
||||
color[3] = pColorsCasted[MANTISSA_LSB_OFFSET];
|
||||
|
||||
DetailPropSpriteDict_t *pDict = pquad->m_pSpriteDefs[0];
|
||||
DetailPropSpriteDict_t *pDict;
|
||||
#ifdef PLATFORM_64BITS
|
||||
if( nSubIdx == 1 )
|
||||
pDict = ((FastSpriteQuadBuildoutBufferNonSIMDView_t*)((intp)pquad+4))->m_pSpriteDefs[0];
|
||||
else if( nSubIdx == 3 )
|
||||
pDict = ((FastSpriteQuadBuildoutBufferNonSIMDView_t*)((intp)pquad-4))->m_pSpriteDefs[0];
|
||||
else
|
||||
#endif
|
||||
pDict = pquad->m_pSpriteDefs[0];
|
||||
|
||||
meshBuilder.Position3f( pquad->m_flX0[0], pquad->m_flY0[0], pquad->m_flZ0[0] );
|
||||
meshBuilder.Color4ubv( color );
|
||||
|
||||
Reference in New Issue
Block a user