void CGlowObjectManager::GlowObjectDefinition_t::DrawModel() { C_BaseEntity *pEntity = m_hEntity.Get(); if ( !pEntity ) return; if ( pEntity->GetMoveParent() != NULL ) { C_BaseAnimating *pBaseAnimating = pEntity->GetBaseAnimating(); if ( pBaseAnimating ) { pBaseAnimating->InvalidateBoneCache(); } } pEntity->DrawModel( STUDIO_RENDER ); C_BaseEntity *pAttachment = pEntity->FirstMoveChild(); while ( pAttachment != NULL ) { if ( !g_GlowObjectManager.HasGlowEffect( pAttachment ) && pAttachment->ShouldDraw() ) { C_BaseAnimating *pBaseAnimating = pAttachment->GetBaseAnimating(); if ( pBaseAnimating ) { pBaseAnimating->InvalidateBoneCache(); } pAttachment->DrawModel( STUDIO_RENDER ); } pAttachment = pAttachment->NextMovePeer(); } }
void CObjectMotionBlurManager::ObjectMotionBlurDefinition_t::DrawModel() { Vector vVelocity; m_pEntity->EstimateAbsVelocity( vVelocity ); float flR = ( m_flVelocityScale * vVelocity.x + 128.0f ) / 256.0f; float flG = ( m_flVelocityScale * vVelocity.y + 128.0f ) / 256.0f; float flColor[3] = { flR, flG, 0.0f }; render->SetColorModulation( flColor ); C_BaseEntity *pAttachment; RenderableInstance_t instance; instance.m_nAlpha = 255; if ( mat_object_motion_blur_model_scale.GetFloat() != 1.0f ) { m_pEntity->SetModelScale( mat_object_motion_blur_model_scale.GetFloat() ); m_pEntity->InvalidateBoneCache(); m_pEntity->DrawModel( STUDIO_RENDER | STUDIO_SKIP_FLEXES | STUDIO_DONOTMODIFYSTENCILSTATE | STUDIO_NOLIGHTING_OR_CUBEMAP | STUDIO_SKIP_DECALS, instance ); pAttachment = m_pEntity->FirstMoveChild(); while ( pAttachment != NULL ) { if ( pAttachment->ShouldDraw() ) { pAttachment->DrawModel( STUDIO_RENDER | STUDIO_SKIP_FLEXES | STUDIO_DONOTMODIFYSTENCILSTATE | STUDIO_NOLIGHTING_OR_CUBEMAP | STUDIO_SKIP_DECALS, instance ); } pAttachment = pAttachment->NextMovePeer(); } m_pEntity->SetModelScale( 1.0f ); m_pEntity->InvalidateBoneCache(); } flColor[2] = 1.0f; render->SetColorModulation( flColor ); m_pEntity->DrawModel( STUDIO_RENDER | STUDIO_SKIP_FLEXES | STUDIO_DONOTMODIFYSTENCILSTATE | STUDIO_NOLIGHTING_OR_CUBEMAP | STUDIO_SKIP_DECALS, instance ); pAttachment = m_pEntity->FirstMoveChild(); while ( pAttachment != NULL ) { if ( pAttachment->ShouldDraw() ) { pAttachment->DrawModel( STUDIO_RENDER | STUDIO_SKIP_FLEXES | STUDIO_DONOTMODIFYSTENCILSTATE | STUDIO_NOLIGHTING_OR_CUBEMAP | STUDIO_SKIP_DECALS, instance ); } pAttachment = pAttachment->NextMovePeer(); } }
void CGlowObjectManager::GlowObjectDefinition_t::DrawModel() { if ( m_hEntity.Get() ) { m_hEntity->DrawModel( STUDIO_RENDER ); C_BaseEntity *pAttachment = m_hEntity->FirstMoveChild(); while ( pAttachment != NULL ) { if ( !g_GlowObjectManager.HasGlowEffect( pAttachment ) && pAttachment->ShouldDraw() ) { pAttachment->DrawModel( STUDIO_RENDER ); } pAttachment = pAttachment->NextMovePeer(); } } }
void CGlowObjectManager::GlowObjectDefinition_t::DrawModel() { RenderableInstance_t instance; instance.m_nAlpha = (uint8)( m_flGlowAlpha * 255.0f ); m_pEntity->DrawModel( STUDIO_RENDER | STUDIO_SKIP_FLEXES | STUDIO_DONOTMODIFYSTENCILSTATE | STUDIO_NOLIGHTING_OR_CUBEMAP | STUDIO_SKIP_DECALS, instance ); C_BaseEntity *pAttachment = m_pEntity->FirstMoveChild(); while ( pAttachment != NULL ) { if ( pAttachment->ShouldDraw() ) { pAttachment->DrawModel( STUDIO_RENDER | STUDIO_SKIP_FLEXES | STUDIO_DONOTMODIFYSTENCILSTATE | STUDIO_NOLIGHTING_OR_CUBEMAP | STUDIO_SKIP_DECALS, instance ); } pAttachment = pAttachment->NextMovePeer(); } }