//----------------------------------------------------------------------------- // Purpose: // Input : flags - // Output : int //----------------------------------------------------------------------------- int CSprite::DrawModel( int flags, const RenderableInstance_t &instance ) { VPROF_BUDGET( "CSprite::DrawModel", VPROF_BUDGETGROUP_PARTICLE_RENDERING ); //See if we should draw if ( !IsVisible() || ( m_bReadyToDraw == false ) ) return 0; // Tracker 16432: If rendering a savegame screenshot then don't draw sprites // who have viewmodels as their moveparent if ( g_bRenderingScreenshot || !r_drawviewmodel.GetBool() ) { C_BaseViewModel *vm = ToBaseViewModel( GetMoveParent() ); if ( vm ) { return 0; } } //Must be a sprite if ( modelinfo->GetModelType( GetModel() ) != mod_sprite ) { const char *modelName = modelinfo->GetModelName( GetModel() ); char msg[256]; V_snprintf( msg, 256, "Sprite %d has non-mod_sprite model %s (type %d)\n", entindex(), modelName, modelinfo->GetModelType( GetModel() ) ); AssertMsgOnce( 0, msg ); return 0; } float renderscale = GetRenderScale(); if ( m_bWorldSpaceScale ) { CEngineSprite *psprite = ( CEngineSprite * )modelinfo->GetModelExtraData( GetModel() ); float flMinSize = MIN( psprite->GetWidth(), psprite->GetHeight() ); renderscale /= flMinSize; } //Draw it int drawn = DrawSprite( this, GetModel(), GetAbsOrigin(), GetAbsAngles(), m_flFrame, // sprite frame to render m_hAttachedToEntity, // attach to m_nAttachment, // attachment point GetRenderMode(), // rendermode GetRenderFX(), (float)( GetRenderBrightness() * instance.m_nAlpha ) * ( 1.0f / 255.0f ) + 0.5f, // alpha GetRenderColorR(), GetRenderColorG(), GetRenderColorB(), renderscale, // sprite scale GetHDRColorScale() // HDR Color Scale ); return drawn; }
//----------------------------------------------------------------------------- // Purpose: // Input : flags - // Output : int //----------------------------------------------------------------------------- int CSprite::DrawModel( int flags ) { VPROF_BUDGET( "CSprite::DrawModel", VPROF_BUDGETGROUP_PARTICLE_RENDERING ); //See if we should draw if ( !IsVisible() || ( m_bReadyToDraw == false ) ) return 0; #ifdef PORTAL if ( ( !g_pPortalRender->IsRenderingPortal() && !m_bDrawInMainRender ) || ( g_pPortalRender->IsRenderingPortal() && !m_bDrawInPortalRender ) ) { return 0; } #endif //#ifdef PORTAL // Tracker 16432: If rendering a savegame screenshot then don't draw sprites // who have viewmodels as their moveparent if ( g_bRenderingScreenshot || !r_drawviewmodel.GetBool() ) { C_BaseViewModel *vm = dynamic_cast< C_BaseViewModel * >( GetMoveParent() ); if ( vm ) { return 0; } } //Must be a sprite if ( modelinfo->GetModelType( GetModel() ) != mod_sprite ) { Assert( 0 ); return 0; } float renderscale = GetRenderScale(); if ( m_bWorldSpaceScale ) { CEngineSprite *psprite = ( CEngineSprite * )modelinfo->GetModelExtraData( GetModel() ); float flMinSize = MIN( psprite->GetWidth(), psprite->GetHeight() ); renderscale /= flMinSize; } //Draw it int drawn = DrawSprite( this, GetModel(), GetAbsOrigin(), GetAbsAngles(), m_flFrame, // sprite frame to render m_hAttachedToEntity, // attach to m_nAttachment, // attachment point GetRenderMode(), // rendermode m_nRenderFX, GetRenderBrightness(), // alpha m_clrRender->r, m_clrRender->g, m_clrRender->b, renderscale, // sprite scale GetHDRColorScale() // HDR Color Scale ); return drawn; }