aboutsummaryrefslogtreecommitdiff
path: root/mp/src/game/client/perfvisualbenchmark.cpp
diff options
context:
space:
mode:
authorJørgen P. Tjernø <[email protected]>2013-12-02 19:31:46 -0800
committerJørgen P. Tjernø <[email protected]>2013-12-02 19:46:31 -0800
commitf56bb35301836e56582a575a75864392a0177875 (patch)
treede61ddd39de3e7df52759711950b4c288592f0dc /mp/src/game/client/perfvisualbenchmark.cpp
parentMark some more files as text. (diff)
downloadsource-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz
source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip
Fix line endings. WHAMMY.
Diffstat (limited to 'mp/src/game/client/perfvisualbenchmark.cpp')
-rw-r--r--mp/src/game/client/perfvisualbenchmark.cpp624
1 files changed, 312 insertions, 312 deletions
diff --git a/mp/src/game/client/perfvisualbenchmark.cpp b/mp/src/game/client/perfvisualbenchmark.cpp
index a80884cd..29eb1fdf 100644
--- a/mp/src/game/client/perfvisualbenchmark.cpp
+++ b/mp/src/game/client/perfvisualbenchmark.cpp
@@ -1,312 +1,312 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================//
-
-#include "cbase.h"
-#include "perfvisualbenchmark.h"
-#include "KeyValues.h"
-
-// memdbgon must be the last include file in a .cpp file!!!
-#include "tier0/memdbgon.h"
-
-#define VAR 0
-#define ON 1
-#define OFF 2
-#define DETAILS 3
-
-static CPerfVisualBenchmark s_PerfVisualBenchmark; // singleton
-
-IGameSystem* PerfVisualBenchmark() { return &s_PerfVisualBenchmark; }
-
-#ifndef _XBOX
-extern ConVar cl_mouseenable;
-#endif
-
-void usrCmd_Start()
-{
- s_PerfVisualBenchmark.Start();
-}
-
-void usrCmd_Abort()
-{
- s_PerfVisualBenchmark.Stop();
-}
-
-static ConCommand perfvisualbenchmark("perfvisualbenchmark", usrCmd_Start);
-static ConCommand perfvisualbenchmark_abort("perfvisualbenchmark_abort", usrCmd_Abort);
-
-
-CPerfVisualBenchmark::CPerfVisualBenchmark()
-{
-}
-
-CPerfVisualBenchmark::~CPerfVisualBenchmark()
-{
-}
-
-bool CPerfVisualBenchmark::Init()
-{
- RunInfo_t runInfo;
-
- runInfo.m_pVarName = "";
- runInfo.m_pOnVal = "";
- runInfo.m_pOffVal = "";
- runInfo.m_pDescription = "Default";
- runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
- m_RunInfo.AddToTail( runInfo );
-
- runInfo.m_pVarName = "r_drawdetailprops";
- runInfo.m_pOnVal = "0";
- runInfo.m_pOffVal = "1";
- runInfo.m_pDescription = "detail props";
- runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
- m_RunInfo.AddToTail( runInfo );
-
- runInfo.m_pVarName = "r_drawworld";
- runInfo.m_pOnVal = "0";
- runInfo.m_pOffVal = "1";
- runInfo.m_pDescription = "world geometry";
- runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
- m_RunInfo.AddToTail( runInfo );
-
- runInfo.m_pVarName = "r_drawentities";
- runInfo.m_pOnVal = "0";
- runInfo.m_pOffVal = "1";
- runInfo.m_pDescription = "entities";
- runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
- m_RunInfo.AddToTail( runInfo );
-
- runInfo.m_pVarName = "r_3dsky";
- runInfo.m_pOnVal = "0";
- runInfo.m_pOffVal = "1";
- runInfo.m_pDescription = "3D skybox";
- runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
- m_RunInfo.AddToTail( runInfo );
-
- runInfo.m_pVarName = "r_drawdecals";
- runInfo.m_pOnVal = "0";
- runInfo.m_pOffVal = "1";
- runInfo.m_pDescription = "decals";
- runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
- m_RunInfo.AddToTail( runInfo );
-
- runInfo.m_pVarName = "mat_stub";
- runInfo.m_pOnVal = "1";
- runInfo.m_pOffVal = "0";
- runInfo.m_pDescription = "material system and below";
- runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
- m_RunInfo.AddToTail( runInfo );
-
- runInfo.m_pVarName = "mat_viewportscale";
- runInfo.m_pOnVal = ".2";
- runInfo.m_pOffVal = "1.0";
- runInfo.m_pDescription = "fillrate";
- runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
- m_RunInfo.AddToTail( runInfo );
-
- runInfo.m_pVarName = "r_drawstaticprops";
- runInfo.m_pOnVal = "0";
- runInfo.m_pOffVal = "1";
- runInfo.m_pDescription = "fillrate";
- runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
- m_RunInfo.AddToTail( runInfo );
-
- runInfo.m_pVarName = "r_drawbrushmodels";
- runInfo.m_pOnVal = "0";
- runInfo.m_pOffVal = "1";
- runInfo.m_pDescription = "brush models";
- runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
- m_RunInfo.AddToTail( runInfo );
-
- runInfo.m_pVarName = "r_renderoverlayfragment";
- runInfo.m_pOnVal = "0";
- runInfo.m_pOffVal = "1";
- runInfo.m_pDescription = "overlays";
- runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
- m_RunInfo.AddToTail( runInfo );
-
- runInfo.m_pVarName = "r_drawdisp";
- runInfo.m_pOnVal = "0";
- runInfo.m_pOffVal = "1";
- runInfo.m_pDescription = "displacements";
- runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
- m_RunInfo.AddToTail( runInfo );
-
- runInfo.m_pVarName = "r_drawviewmodel";
- runInfo.m_pOnVal = "0";
- runInfo.m_pOffVal = "1";
- runInfo.m_pDescription = "viewmodel";
- runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
- m_RunInfo.AddToTail( runInfo );
-
- runInfo.m_pVarName = "cl_drawhud";
- runInfo.m_pOnVal = "0";
- runInfo.m_pOffVal = "1";
- runInfo.m_pDescription = "hud";
- runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
- m_RunInfo.AddToTail( runInfo );
-
- runInfo.m_pVarName = "r_drawparticles";
- runInfo.m_pOnVal = "0";
- runInfo.m_pOffVal = "1";
- runInfo.m_pDescription = "particles";
- runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
- m_RunInfo.AddToTail( runInfo );
-
- runInfo.m_pVarName = "r_drawsprites";
- runInfo.m_pOnVal = "0";
- runInfo.m_pOffVal = "1";
- runInfo.m_pDescription = "sprites";
- runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
- m_RunInfo.AddToTail( runInfo );
-
- runInfo.m_pVarName = "mat_bumpmap";
- runInfo.m_pOnVal = "0";
- runInfo.m_pOffVal = "1";
- runInfo.m_pDescription = "bump mapping";
- runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME_RELOAD_MATERIALS;
- m_RunInfo.AddToTail( runInfo );
-
- runInfo.m_pVarName = "mat_specular";
- runInfo.m_pOnVal = "0";
- runInfo.m_pOffVal = "1";
- runInfo.m_pDescription = "specularity";
- runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME_RELOAD_MATERIALS;
- m_RunInfo.AddToTail( runInfo );
-
- runInfo.m_pVarName = "mat_drawwater";
- runInfo.m_pOnVal = "0";
- runInfo.m_pOffVal = "1";
- runInfo.m_pDescription = "water";
- runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
- m_RunInfo.AddToTail( runInfo );
-
- runInfo.m_pVarName = "r_dynamic";
- runInfo.m_pOnVal = "0";
- runInfo.m_pOffVal = "1";
- runInfo.m_pDescription = "dynamic lighting";
- runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
- m_RunInfo.AddToTail( runInfo );
-
- runInfo.m_pVarName = "r_shadows";
- runInfo.m_pOnVal = "0";
- runInfo.m_pOffVal = "1";
- runInfo.m_pDescription = "shadows";
- runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
- m_RunInfo.AddToTail( runInfo );
-
- runInfo.m_pVarName = "r_drawropes";
- runInfo.m_pOnVal = "0";
- runInfo.m_pOffVal = "1";
- runInfo.m_pDescription = "ropes";
- runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
- m_RunInfo.AddToTail( runInfo );
-
- m_bIsOn = false; //is this thing on?
- return true;
-}
-
-void CPerfVisualBenchmark::Start()
-{
-#ifndef _XBOX
- m_bSaveMouseEnable = cl_mouseenable.GetBool();
- cl_mouseenable.SetValue( 0 );
-#endif
- m_iCurVar = 0;
- m_flTimer = gpGlobals->realtime + FPS_STABILIZE_TIME;
- m_bWaiting = true;
- m_bIsOn = true; // showtime!
- engine->ClientCmd_Unrestricted("cancelselect"); // exit menu and console
-// engine->ClientCmd_Unrestricted("wait");
-// engine->ClientCmd_Unrestricted("setpause"); // pause the mofo
- engine->ClientCmd_Unrestricted("host_timescale 0.0001"); // pause the mofo
-
-}
-
-void CPerfVisualBenchmark::Stop()
-{
-#ifndef _XBOX
- cl_mouseenable.SetValue( m_bSaveMouseEnable );
-#endif
- m_bIsOn = false;
- Print();
- engine->ClientCmd_Unrestricted("host_timescale 0"); // pause the mofo
-// engine->ClientCmd_Unrestricted("unpause"); // unpause the mofo
-// engine->ClientCmd_Unrestricted("wait");
- engine->ClientCmd_Unrestricted("toggleconsole");
-}
-
-void CPerfVisualBenchmark::PreRender( )
-{
- if (!m_bIsOn)
- return;
-
- // Wait for the timer
- if ( m_flTimer > gpGlobals->realtime )
- return;
-
- if ( m_bWaiting )
- {
- m_flTimer = gpGlobals->realtime + FPS_MEASURE_TIME;
- m_flStartMeasureTime = gpGlobals->realtime;
- m_nStartFrameCount = gpGlobals->framecount;
- m_bWaiting = false;
- return;
- }
-
- // Ok, we were measuring, lets calculate the results
- float flDenom = gpGlobals->realtime - m_flStartMeasureTime;
- if (flDenom == 0)
- {
- flDenom = 1.0f;
- }
-
- // note the current avged fps;
- float flAveFPS = (gpGlobals->framecount - m_nStartFrameCount) / flDenom;
- m_RunInfo[m_iCurVar].m_flFPS = flAveFPS;
-
- m_flTimer = gpGlobals->realtime + FPS_STABILIZE_TIME;
- m_bWaiting = true;
-
- char combuffer[255];
-
- // Turn off any previous value
- if ( m_RunInfo[m_iCurVar].m_pVarName )
- {
- Q_snprintf(combuffer, sizeof(combuffer), "%s %s\n", m_RunInfo[m_iCurVar].m_pVarName, m_RunInfo[m_iCurVar].m_pOffVal ); //turn off current var
- engine->ClientCmd_Unrestricted(combuffer);
- }
-
- // next var
- m_iCurVar++;
- if (m_iCurVar == m_RunInfo.Count())
- {
- Stop();
- return;
- }
-
- Q_snprintf(combuffer, sizeof(combuffer), "%s %s\n",m_RunInfo[m_iCurVar].m_pVarName, m_RunInfo[m_iCurVar].m_pOnVal); //turn on next var
- engine->ClientCmd_Unrestricted(combuffer);
-}
-
-
-void CPerfVisualBenchmark::Print() // sort and print into console
-{
- for (int i = 0; i<m_RunInfo.Count(); i++)
- {
- int curMax = 0;
- for (int j = 0; j<m_RunInfo.Count(); j++)
- {
- if (m_RunInfo[j].m_flFPS > m_RunInfo[curMax].m_flFPS)
- {
- curMax = j;
- }
- }
- Msg("%.0f fps - %s\n",m_RunInfo[curMax].m_flFPS, m_RunInfo[curMax].m_pDescription);
- m_RunInfo[curMax].m_flFPS=-1;
- }
-}
-
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#include "cbase.h"
+#include "perfvisualbenchmark.h"
+#include "KeyValues.h"
+
+// memdbgon must be the last include file in a .cpp file!!!
+#include "tier0/memdbgon.h"
+
+#define VAR 0
+#define ON 1
+#define OFF 2
+#define DETAILS 3
+
+static CPerfVisualBenchmark s_PerfVisualBenchmark; // singleton
+
+IGameSystem* PerfVisualBenchmark() { return &s_PerfVisualBenchmark; }
+
+#ifndef _XBOX
+extern ConVar cl_mouseenable;
+#endif
+
+void usrCmd_Start()
+{
+ s_PerfVisualBenchmark.Start();
+}
+
+void usrCmd_Abort()
+{
+ s_PerfVisualBenchmark.Stop();
+}
+
+static ConCommand perfvisualbenchmark("perfvisualbenchmark", usrCmd_Start);
+static ConCommand perfvisualbenchmark_abort("perfvisualbenchmark_abort", usrCmd_Abort);
+
+
+CPerfVisualBenchmark::CPerfVisualBenchmark()
+{
+}
+
+CPerfVisualBenchmark::~CPerfVisualBenchmark()
+{
+}
+
+bool CPerfVisualBenchmark::Init()
+{
+ RunInfo_t runInfo;
+
+ runInfo.m_pVarName = "";
+ runInfo.m_pOnVal = "";
+ runInfo.m_pOffVal = "";
+ runInfo.m_pDescription = "Default";
+ runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
+ m_RunInfo.AddToTail( runInfo );
+
+ runInfo.m_pVarName = "r_drawdetailprops";
+ runInfo.m_pOnVal = "0";
+ runInfo.m_pOffVal = "1";
+ runInfo.m_pDescription = "detail props";
+ runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
+ m_RunInfo.AddToTail( runInfo );
+
+ runInfo.m_pVarName = "r_drawworld";
+ runInfo.m_pOnVal = "0";
+ runInfo.m_pOffVal = "1";
+ runInfo.m_pDescription = "world geometry";
+ runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
+ m_RunInfo.AddToTail( runInfo );
+
+ runInfo.m_pVarName = "r_drawentities";
+ runInfo.m_pOnVal = "0";
+ runInfo.m_pOffVal = "1";
+ runInfo.m_pDescription = "entities";
+ runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
+ m_RunInfo.AddToTail( runInfo );
+
+ runInfo.m_pVarName = "r_3dsky";
+ runInfo.m_pOnVal = "0";
+ runInfo.m_pOffVal = "1";
+ runInfo.m_pDescription = "3D skybox";
+ runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
+ m_RunInfo.AddToTail( runInfo );
+
+ runInfo.m_pVarName = "r_drawdecals";
+ runInfo.m_pOnVal = "0";
+ runInfo.m_pOffVal = "1";
+ runInfo.m_pDescription = "decals";
+ runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
+ m_RunInfo.AddToTail( runInfo );
+
+ runInfo.m_pVarName = "mat_stub";
+ runInfo.m_pOnVal = "1";
+ runInfo.m_pOffVal = "0";
+ runInfo.m_pDescription = "material system and below";
+ runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
+ m_RunInfo.AddToTail( runInfo );
+
+ runInfo.m_pVarName = "mat_viewportscale";
+ runInfo.m_pOnVal = ".2";
+ runInfo.m_pOffVal = "1.0";
+ runInfo.m_pDescription = "fillrate";
+ runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
+ m_RunInfo.AddToTail( runInfo );
+
+ runInfo.m_pVarName = "r_drawstaticprops";
+ runInfo.m_pOnVal = "0";
+ runInfo.m_pOffVal = "1";
+ runInfo.m_pDescription = "fillrate";
+ runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
+ m_RunInfo.AddToTail( runInfo );
+
+ runInfo.m_pVarName = "r_drawbrushmodels";
+ runInfo.m_pOnVal = "0";
+ runInfo.m_pOffVal = "1";
+ runInfo.m_pDescription = "brush models";
+ runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
+ m_RunInfo.AddToTail( runInfo );
+
+ runInfo.m_pVarName = "r_renderoverlayfragment";
+ runInfo.m_pOnVal = "0";
+ runInfo.m_pOffVal = "1";
+ runInfo.m_pDescription = "overlays";
+ runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
+ m_RunInfo.AddToTail( runInfo );
+
+ runInfo.m_pVarName = "r_drawdisp";
+ runInfo.m_pOnVal = "0";
+ runInfo.m_pOffVal = "1";
+ runInfo.m_pDescription = "displacements";
+ runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
+ m_RunInfo.AddToTail( runInfo );
+
+ runInfo.m_pVarName = "r_drawviewmodel";
+ runInfo.m_pOnVal = "0";
+ runInfo.m_pOffVal = "1";
+ runInfo.m_pDescription = "viewmodel";
+ runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
+ m_RunInfo.AddToTail( runInfo );
+
+ runInfo.m_pVarName = "cl_drawhud";
+ runInfo.m_pOnVal = "0";
+ runInfo.m_pOffVal = "1";
+ runInfo.m_pDescription = "hud";
+ runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
+ m_RunInfo.AddToTail( runInfo );
+
+ runInfo.m_pVarName = "r_drawparticles";
+ runInfo.m_pOnVal = "0";
+ runInfo.m_pOffVal = "1";
+ runInfo.m_pDescription = "particles";
+ runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
+ m_RunInfo.AddToTail( runInfo );
+
+ runInfo.m_pVarName = "r_drawsprites";
+ runInfo.m_pOnVal = "0";
+ runInfo.m_pOffVal = "1";
+ runInfo.m_pDescription = "sprites";
+ runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
+ m_RunInfo.AddToTail( runInfo );
+
+ runInfo.m_pVarName = "mat_bumpmap";
+ runInfo.m_pOnVal = "0";
+ runInfo.m_pOffVal = "1";
+ runInfo.m_pDescription = "bump mapping";
+ runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME_RELOAD_MATERIALS;
+ m_RunInfo.AddToTail( runInfo );
+
+ runInfo.m_pVarName = "mat_specular";
+ runInfo.m_pOnVal = "0";
+ runInfo.m_pOffVal = "1";
+ runInfo.m_pDescription = "specularity";
+ runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME_RELOAD_MATERIALS;
+ m_RunInfo.AddToTail( runInfo );
+
+ runInfo.m_pVarName = "mat_drawwater";
+ runInfo.m_pOnVal = "0";
+ runInfo.m_pOffVal = "1";
+ runInfo.m_pDescription = "water";
+ runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
+ m_RunInfo.AddToTail( runInfo );
+
+ runInfo.m_pVarName = "r_dynamic";
+ runInfo.m_pOnVal = "0";
+ runInfo.m_pOffVal = "1";
+ runInfo.m_pDescription = "dynamic lighting";
+ runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
+ m_RunInfo.AddToTail( runInfo );
+
+ runInfo.m_pVarName = "r_shadows";
+ runInfo.m_pOnVal = "0";
+ runInfo.m_pOffVal = "1";
+ runInfo.m_pDescription = "shadows";
+ runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
+ m_RunInfo.AddToTail( runInfo );
+
+ runInfo.m_pVarName = "r_drawropes";
+ runInfo.m_pOnVal = "0";
+ runInfo.m_pOffVal = "1";
+ runInfo.m_pDescription = "ropes";
+ runInfo.m_flStabilizeTime = FPS_STABILIZE_TIME;
+ m_RunInfo.AddToTail( runInfo );
+
+ m_bIsOn = false; //is this thing on?
+ return true;
+}
+
+void CPerfVisualBenchmark::Start()
+{
+#ifndef _XBOX
+ m_bSaveMouseEnable = cl_mouseenable.GetBool();
+ cl_mouseenable.SetValue( 0 );
+#endif
+ m_iCurVar = 0;
+ m_flTimer = gpGlobals->realtime + FPS_STABILIZE_TIME;
+ m_bWaiting = true;
+ m_bIsOn = true; // showtime!
+ engine->ClientCmd_Unrestricted("cancelselect"); // exit menu and console
+// engine->ClientCmd_Unrestricted("wait");
+// engine->ClientCmd_Unrestricted("setpause"); // pause the mofo
+ engine->ClientCmd_Unrestricted("host_timescale 0.0001"); // pause the mofo
+
+}
+
+void CPerfVisualBenchmark::Stop()
+{
+#ifndef _XBOX
+ cl_mouseenable.SetValue( m_bSaveMouseEnable );
+#endif
+ m_bIsOn = false;
+ Print();
+ engine->ClientCmd_Unrestricted("host_timescale 0"); // pause the mofo
+// engine->ClientCmd_Unrestricted("unpause"); // unpause the mofo
+// engine->ClientCmd_Unrestricted("wait");
+ engine->ClientCmd_Unrestricted("toggleconsole");
+}
+
+void CPerfVisualBenchmark::PreRender( )
+{
+ if (!m_bIsOn)
+ return;
+
+ // Wait for the timer
+ if ( m_flTimer > gpGlobals->realtime )
+ return;
+
+ if ( m_bWaiting )
+ {
+ m_flTimer = gpGlobals->realtime + FPS_MEASURE_TIME;
+ m_flStartMeasureTime = gpGlobals->realtime;
+ m_nStartFrameCount = gpGlobals->framecount;
+ m_bWaiting = false;
+ return;
+ }
+
+ // Ok, we were measuring, lets calculate the results
+ float flDenom = gpGlobals->realtime - m_flStartMeasureTime;
+ if (flDenom == 0)
+ {
+ flDenom = 1.0f;
+ }
+
+ // note the current avged fps;
+ float flAveFPS = (gpGlobals->framecount - m_nStartFrameCount) / flDenom;
+ m_RunInfo[m_iCurVar].m_flFPS = flAveFPS;
+
+ m_flTimer = gpGlobals->realtime + FPS_STABILIZE_TIME;
+ m_bWaiting = true;
+
+ char combuffer[255];
+
+ // Turn off any previous value
+ if ( m_RunInfo[m_iCurVar].m_pVarName )
+ {
+ Q_snprintf(combuffer, sizeof(combuffer), "%s %s\n", m_RunInfo[m_iCurVar].m_pVarName, m_RunInfo[m_iCurVar].m_pOffVal ); //turn off current var
+ engine->ClientCmd_Unrestricted(combuffer);
+ }
+
+ // next var
+ m_iCurVar++;
+ if (m_iCurVar == m_RunInfo.Count())
+ {
+ Stop();
+ return;
+ }
+
+ Q_snprintf(combuffer, sizeof(combuffer), "%s %s\n",m_RunInfo[m_iCurVar].m_pVarName, m_RunInfo[m_iCurVar].m_pOnVal); //turn on next var
+ engine->ClientCmd_Unrestricted(combuffer);
+}
+
+
+void CPerfVisualBenchmark::Print() // sort and print into console
+{
+ for (int i = 0; i<m_RunInfo.Count(); i++)
+ {
+ int curMax = 0;
+ for (int j = 0; j<m_RunInfo.Count(); j++)
+ {
+ if (m_RunInfo[j].m_flFPS > m_RunInfo[curMax].m_flFPS)
+ {
+ curMax = j;
+ }
+ }
+ Msg("%.0f fps - %s\n",m_RunInfo[curMax].m_flFPS, m_RunInfo[curMax].m_pDescription);
+ m_RunInfo[curMax].m_flFPS=-1;
+ }
+}
+