66 lines
1.4 KiB
C
66 lines
1.4 KiB
C
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||
|
//
|
||
|
// Purpose:
|
||
|
//
|
||
|
// $NoKeywords: $
|
||
|
//
|
||
|
//=============================================================================//
|
||
|
|
||
|
#if !defined PERFVISUALBENCHMARK_H
|
||
|
#define PERFVISUALBENCHMARK_H
|
||
|
|
||
|
#define FPS_STABILIZE_TIME 1.5
|
||
|
#define FPS_STABILIZE_TIME_RELOAD_MATERIALS 10.0
|
||
|
#define FPS_MEASURE_TIME 2.0
|
||
|
|
||
|
#ifdef _WIN32
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
#include <igameevents.h>
|
||
|
#include <igamesystem.h>
|
||
|
|
||
|
class CPerfVisualBenchmark : public CBaseGameSystemPerFrame
|
||
|
{
|
||
|
|
||
|
public:
|
||
|
CPerfVisualBenchmark();
|
||
|
virtual ~CPerfVisualBenchmark();
|
||
|
|
||
|
public: // CBaseGameSystem overrides
|
||
|
|
||
|
virtual char const *Name() { return "CPerfVisualBenchmark"; }
|
||
|
|
||
|
virtual bool Init();
|
||
|
virtual void PreRender( );
|
||
|
|
||
|
void Start();
|
||
|
void Stop();
|
||
|
|
||
|
private:
|
||
|
void Print();
|
||
|
struct RunInfo_t
|
||
|
{
|
||
|
const char *m_pVarName;
|
||
|
const char *m_pOnVal;
|
||
|
const char *m_pOffVal;
|
||
|
const char *m_pDescription;
|
||
|
float m_flStabilizeTime;
|
||
|
float m_flFPS;
|
||
|
};
|
||
|
|
||
|
private:
|
||
|
CUtlVector<RunInfo_t> m_RunInfo;
|
||
|
bool m_bIsOn; //is this thing on?
|
||
|
int m_iCurVar; //what convar are we at?
|
||
|
float m_flTimer; //time since we started measuring the current convar
|
||
|
float m_flStartMeasureTime;
|
||
|
int m_nStartFrameCount;
|
||
|
bool m_bSaveMouseEnable; // remember this so that we can reset it after the benchmark
|
||
|
bool m_bWaiting;
|
||
|
};
|
||
|
|
||
|
extern IGameSystem* PerfVisualBenchmark();
|
||
|
|
||
|
#endif // PERFVISUALBENCHMARK_H
|