diff --git a/public/engine/thinktracecounter.h b/public/engine/thinktracecounter.h new file mode 100644 index 00000000..7aee06b1 --- /dev/null +++ b/public/engine/thinktracecounter.h @@ -0,0 +1,49 @@ +//========= Copyright 1996-2005, Valve Corporation, All rights reserved. ============// +// +// Purpose: Some macros for the raytraces-in-think-function-counter. +// They're in a header because they're included in a bunch of +// places, but on some cases they need to define files and in +// others only extern them. +// +//=============================================================================// + +#ifndef THINK_TRACE_COUNTER_H +#define THINK_TRACE_COUNTER_H +#ifdef _WIN32 +#pragma once +#endif + +#define THINK_TRACE_COUNTER_COMPILED 1 // without this, all the code is elided. + + +#ifdef THINK_TRACE_COUNTER_COMPILED + // create a macro that is true if we are allowed to debug traces during thinks, and compiles out to nothing otherwise. + #if defined( _GAMECONSOLE ) || defined( NO_STEAM ) + #define DEBUG_THINK_TRACE_COUNTER_ALLOWED() (!IsCert()) + #else + #ifdef THINK_TRACE_COUNTER_COMPILE_FUNCTIONS_ENGINE + bool DEBUG_THINK_TRACE_COUNTER_ALLOWED() + { + // done as a static var to defer initialization until Steam is ready, + // but also to have the fastest check at runtime (rather than calling through + // the API each time) + static bool bIsPublic = GetSteamUniverse() == k_EUniversePublic; + return !bIsPublic; + } + #elif defined( THINK_TRACE_COUNTER_COMPILE_FUNCTIONS_SERVER ) + bool DEBUG_THINK_TRACE_COUNTER_ALLOWED() + { + // done as a static var to defer initialization until Steam is ready, + // but also to have the fastest check at runtime (rather than calling through + // the API each time) + static bool bIsPublic = steamapicontext->SteamUtils() != NULL && steamapicontext->SteamUtils()->GetConnectedUniverse() == k_EUniversePublic; + return !bIsPublic; + } + #else + extern bool DEBUG_THINK_TRACE_COUNTER_ALLOWED(); + #endif + #endif +#endif + + +#endif // THINK_TRACE_COUNTER_H