From 39ed87570bdb2f86969d4be821c94b722dc71179 Mon Sep 17 00:00:00 2001 From: Joe Ludwig Date: Wed, 26 Jun 2013 15:22:04 -0700 Subject: First version of the SOurce SDK 2013 --- mp/src/game/server/sprite_perfmonitor.cpp | 95 +++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 mp/src/game/server/sprite_perfmonitor.cpp (limited to 'mp/src/game/server/sprite_perfmonitor.cpp') diff --git a/mp/src/game/server/sprite_perfmonitor.cpp b/mp/src/game/server/sprite_perfmonitor.cpp new file mode 100644 index 00000000..83304e42 --- /dev/null +++ b/mp/src/game/server/sprite_perfmonitor.cpp @@ -0,0 +1,95 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: an entity which turns on and off counting and display of the particle +// performance metric +// +//============================================================================= + +#include "cbase.h" +#include "baseentity.h" +#include "entityoutput.h" +#include "convar.h" +// memdbgon must be the last include file in a .cpp file!!! +#include "tier0/memdbgon.h" + +//----------------------------------------------------------------------------- +// Purpose: Entity that particle performance measuring +//----------------------------------------------------------------------------- +class CParticlePerformanceMonitor : public CPointEntity +{ + DECLARE_CLASS( CParticlePerformanceMonitor, CPointEntity ); +public: + DECLARE_DATADESC(); + DECLARE_SERVERCLASS(); + + void Spawn( void ); + int UpdateTransmitState( void ); + + // Inputs + void InputTurnOnDisplay( inputdata_t &inputdata ); + void InputTurnOffDisplay( inputdata_t &inputdata ); + void InputStartMeasuring( inputdata_t &inputdata ); + void InputStopMeasuring( inputdata_t &inputdata ); + +private: + CNetworkVar( bool, m_bDisplayPerf ); + CNetworkVar( bool, m_bMeasurePerf ); +}; + +LINK_ENTITY_TO_CLASS( env_particle_performance_monitor, CParticlePerformanceMonitor ); + +BEGIN_DATADESC( CParticlePerformanceMonitor ) + DEFINE_FIELD( m_bDisplayPerf, FIELD_BOOLEAN ), + DEFINE_FIELD( m_bMeasurePerf, FIELD_BOOLEAN ), + + // Inputs + DEFINE_INPUTFUNC( FIELD_VOID, "TurnOnDisplay", InputTurnOnDisplay ), + DEFINE_INPUTFUNC( FIELD_VOID, "TurnOffDisplay", InputTurnOffDisplay ), + DEFINE_INPUTFUNC( FIELD_VOID, "StartMeasuring", InputStartMeasuring ), + DEFINE_INPUTFUNC( FIELD_VOID, "StopMeasuring", InputStopMeasuring ), +END_DATADESC() + +IMPLEMENT_SERVERCLASS_ST( CParticlePerformanceMonitor, DT_ParticlePerformanceMonitor ) + SendPropInt( SENDINFO(m_bDisplayPerf), 1, SPROP_UNSIGNED ), + SendPropInt( SENDINFO(m_bMeasurePerf), 1, SPROP_UNSIGNED ), +END_SEND_TABLE() + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CParticlePerformanceMonitor::Spawn( void ) +{ + SetSolid( SOLID_NONE ); + SetMoveType( MOVETYPE_NONE ); + m_bDisplayPerf = false; + m_bMeasurePerf = false; +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +int CParticlePerformanceMonitor::UpdateTransmitState() +{ + return SetTransmitState( FL_EDICT_ALWAYS ); +} + +void CParticlePerformanceMonitor::InputTurnOnDisplay( inputdata_t &inputdata ) +{ + m_bDisplayPerf = true; +} + +void CParticlePerformanceMonitor::InputTurnOffDisplay( inputdata_t &inputdata ) +{ + m_bDisplayPerf = false; +} + +void CParticlePerformanceMonitor::InputStartMeasuring( inputdata_t &inputdata ) +{ + m_bMeasurePerf = true; +} + +void CParticlePerformanceMonitor::InputStopMeasuring( inputdata_t &inputdata ) +{ + m_bMeasurePerf = false; +} + -- cgit v1.2.3