Timers

From Valve Developer Community
Jump to: navigation, search
Dead End - Icon.png
This article has no Wikipedia icon links to other VDC articles. Please help improve this article by adding links Wikipedia icon that are relevant to the context within the existing text.
January 2024

Tier0 Fast Timer

File: src\public\tier0\fasttimer.h

CFastTimer class
The functions contained in this class are quick to maximize timer accuracy. The timer can be started and ended with the member functions Start and Stop. It should be initialized as a nonpointer object.
CTimeScope class
This class calls the Start and End functions of a CFastTimer specified in the constructor. The Start and End functions are called in the constructor and destructor respectively.
CTimeAdder class
This class manages a member CFastTimer and adds the ending duration to a CCycleCount object specified in the constructor.
CLimitTimer class
Use this class to time whether a desired interval of time has passed.
CAverageCycleCounter class
This class manages an average time covered.
CAverageTimeMarker class
This class is a counter that iterates the CAverageCycleCounter specified in the constructor.
PROFILE_SCOPE(name)
This is a simple tool to support timing a block of code, and reporting the results on program exit.

UTIL Shared Timer

File: src\game_shared\util_shared.h

IntervalTimer class
This is a simple class for tracking intervals of game time. Upon creation, the timer is invalidated. To measure time intervals, start the timer via the Start function.
CountdownTimer class
This is a simple class for counting down a short interval of time. Upon creation, the timer is invalidated. Invalidated countdown timers are considered to have elapsed.

Client TimedEvent class

File: src\cl_dll\timedevent.h

This class triggers events at a specified rate. What it does is help manage a specific event over time.

Usage:

  • Embed a nonpointer TimedEvent object into a class.
  • On creation, call the object's Init function specifying the rate.
  • In the Update function of a clientside entity class, use the following loop:
	float tempDelta = fTimeDelta;
	while( m_ParticleSpawn.NextEvent( tempDelta ) )

Undocumented classes

Todo: complete
  • CTimedEventMgr
  • CTimedEventQueue