virtual void ProcessEvent( EFlowEvent event, SActivationInfo *pActInfo ) { CRY_ASSERT(pActInfo != NULL); switch (event) { case eFE_Initialize: { pActInfo->pGraph->SetRegularlyUpdated( pActInfo->myID, false ); Reset(); } break; case eFE_Activate: { if (IsPortActive(pActInfo, eIN_Start)) { pActInfo->pGraph->SetRegularlyUpdated( pActInfo->myID, true ); } if (IsPortActive(pActInfo, eIN_Stop)) { pActInfo->pGraph->SetRegularlyUpdated( pActInfo->myID, false ); } if (IsPortActive(pActInfo, eIN_Reset)) { Reset(); } } break; case eFE_Update: { IRenderer *pRenderer = gEnv->pRenderer; float fFrameTime = gEnv->pTimer->GetFrameTime(); float fFrameRate = gEnv->pTimer->GetFrameRate(); int fFrameId = pRenderer->GetFrameID(false); m_fMinFrameRate = min(fFrameRate, m_fMinFrameRate); m_fMaxFrameRate = max(fFrameRate, m_fMaxFrameRate); m_fSumFrameRate += fFrameRate; ++m_lFrameCounter; ActivateOutput(pActInfo, eOUT_FrameTime, fFrameTime); ActivateOutput(pActInfo, eOUT_FrameRate, fFrameRate); ActivateOutput(pActInfo, eOUT_FrameID, fFrameId); ActivateOutput(pActInfo, eOUT_Min, m_fMinFrameRate); ActivateOutput(pActInfo, eOUT_Max, m_fMaxFrameRate); ActivateOutput(pActInfo, eOUT_Average, (m_fSumFrameRate/m_lFrameCounter)); } break; default: break; } }
virtual void ProcessEvent( EFlowEvent event, SActivationInfo *pActInfo ) { switch (event) { case eFE_Initialize: pActInfo->pGraph->SetRegularlyUpdated( pActInfo->myID, true ); break; case eFE_Update: { ISystem *pSystem = GetISystem(); IRenderer *pRenderer = gEnv->pRenderer; float frameTime = gEnv->pTimer->GetFrameTime(); float frameRate = gEnv->pTimer->GetFrameRate(); int frameId = pRenderer->GetFrameID(false); ActivateOutput(pActInfo, OUT_FRAMETIME, frameTime); ActivateOutput(pActInfo, OUT_FRAMERATE, frameRate); ActivateOutput(pActInfo, OUT_FRAMEID, frameId); } break; } }