diff options
| author | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:31:46 -0800 |
|---|---|---|
| committer | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:46:31 -0800 |
| commit | f56bb35301836e56582a575a75864392a0177875 (patch) | |
| tree | de61ddd39de3e7df52759711950b4c288592f0dc /sp/src/public/icvar.h | |
| parent | Mark some more files as text. (diff) | |
| download | source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip | |
Fix line endings. WHAMMY.
Diffstat (limited to 'sp/src/public/icvar.h')
| -rw-r--r-- | sp/src/public/icvar.h | 406 |
1 files changed, 203 insertions, 203 deletions
diff --git a/sp/src/public/icvar.h b/sp/src/public/icvar.h index 89475b3d..369adc58 100644 --- a/sp/src/public/icvar.h +++ b/sp/src/public/icvar.h @@ -1,203 +1,203 @@ -//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-//===========================================================================//
-
-#ifndef ICVAR_H
-#define ICVAR_H
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include "appframework/IAppSystem.h"
-#include "tier1/iconvar.h"
-
-class ConCommandBase;
-class ConCommand;
-class ConVar;
-class Color;
-
-
-//-----------------------------------------------------------------------------
-// ConVars/ComCommands are marked as having a particular DLL identifier
-//-----------------------------------------------------------------------------
-typedef int CVarDLLIdentifier_t;
-
-
-//-----------------------------------------------------------------------------
-// Used to display console messages
-//-----------------------------------------------------------------------------
-abstract_class IConsoleDisplayFunc
-{
-public:
- virtual void ColorPrint( const Color& clr, const char *pMessage ) = 0;
- virtual void Print( const char *pMessage ) = 0;
- virtual void DPrint( const char *pMessage ) = 0;
-};
-
-
-//-----------------------------------------------------------------------------
-// Purpose: Applications can implement this to modify behavior in ICvar
-//-----------------------------------------------------------------------------
-#define CVAR_QUERY_INTERFACE_VERSION "VCvarQuery001"
-abstract_class ICvarQuery : public IAppSystem
-{
-public:
- // Can these two convars be aliased?
- virtual bool AreConVarsLinkable( const ConVar *child, const ConVar *parent ) = 0;
-};
-
-
-//-----------------------------------------------------------------------------
-// Purpose: DLL interface to ConVars/ConCommands
-//-----------------------------------------------------------------------------
-abstract_class ICvar : public IAppSystem
-{
-public:
- // Allocate a unique DLL identifier
- virtual CVarDLLIdentifier_t AllocateDLLIdentifier() = 0;
-
- // Register, unregister commands
- virtual void RegisterConCommand( ConCommandBase *pCommandBase ) = 0;
- virtual void UnregisterConCommand( ConCommandBase *pCommandBase ) = 0;
- virtual void UnregisterConCommands( CVarDLLIdentifier_t id ) = 0;
-
- // If there is a +<varname> <value> on the command line, this returns the value.
- // Otherwise, it returns NULL.
- virtual const char* GetCommandLineValue( const char *pVariableName ) = 0;
-
- // Try to find the cvar pointer by name
- virtual ConCommandBase *FindCommandBase( const char *name ) = 0;
- virtual const ConCommandBase *FindCommandBase( const char *name ) const = 0;
- virtual ConVar *FindVar ( const char *var_name ) = 0;
- virtual const ConVar *FindVar ( const char *var_name ) const = 0;
- virtual ConCommand *FindCommand( const char *name ) = 0;
- virtual const ConCommand *FindCommand( const char *name ) const = 0;
-
- // Get first ConCommandBase to allow iteration
- virtual ConCommandBase *GetCommands( void ) = 0;
- virtual const ConCommandBase *GetCommands( void ) const = 0;
-
- // Install a global change callback (to be called when any convar changes)
- virtual void InstallGlobalChangeCallback( FnChangeCallback_t callback ) = 0;
- virtual void RemoveGlobalChangeCallback( FnChangeCallback_t callback ) = 0;
- virtual void CallGlobalChangeCallbacks( ConVar *var, const char *pOldString, float flOldValue ) = 0;
-
- // Install a console printer
- virtual void InstallConsoleDisplayFunc( IConsoleDisplayFunc* pDisplayFunc ) = 0;
- virtual void RemoveConsoleDisplayFunc( IConsoleDisplayFunc* pDisplayFunc ) = 0;
- virtual void ConsoleColorPrintf( const Color& clr, PRINTF_FORMAT_STRING const char *pFormat, ... ) const = 0;
- virtual void ConsolePrintf( PRINTF_FORMAT_STRING const char *pFormat, ... ) const = 0;
- virtual void ConsoleDPrintf( PRINTF_FORMAT_STRING const char *pFormat, ... ) const = 0;
-
- // Reverts cvars which contain a specific flag
- virtual void RevertFlaggedConVars( int nFlag ) = 0;
-
- // Method allowing the engine ICvarQuery interface to take over
- // A little hacky, owing to the fact the engine is loaded
- // well after ICVar, so we can't use the standard connect pattern
- virtual void InstallCVarQuery( ICvarQuery *pQuery ) = 0;
-
-#if defined( _X360 )
- virtual void PublishToVXConsole( ) = 0;
-#endif
- virtual bool IsMaterialThreadSetAllowed( ) const = 0;
- virtual void QueueMaterialThreadSetValue( ConVar *pConVar, const char *pValue ) = 0;
- virtual void QueueMaterialThreadSetValue( ConVar *pConVar, int nValue ) = 0;
- virtual void QueueMaterialThreadSetValue( ConVar *pConVar, float flValue ) = 0;
- virtual bool HasQueuedMaterialThreadConVarSets() const = 0;
- virtual int ProcessQueuedMaterialThreadConVarSets() = 0;
-
-protected: class ICVarIteratorInternal;
-public:
- /// Iteration over all cvars.
- /// (THIS IS A SLOW OPERATION AND YOU SHOULD AVOID IT.)
- /// usage:
- /// { ICVar::Iterator iter(g_pCVar);
- /// for ( iter.SetFirst() ; iter.IsValid() ; iter.Next() )
- /// {
- /// ConCommandBase *cmd = iter.Get();
- /// }
- /// }
- /// The Iterator class actually wraps the internal factory methods
- /// so you don't need to worry about new/delete -- scope takes care
- // of it.
- /// We need an iterator like this because we can't simply return a
- /// pointer to the internal data type that contains the cvars --
- /// it's a custom, protected class with unusual semantics and is
- /// prone to change.
- class Iterator
- {
- public:
- inline Iterator(ICvar *icvar);
- inline ~Iterator(void);
- inline void SetFirst( void );
- inline void Next( void );
- inline bool IsValid( void );
- inline ConCommandBase *Get( void );
- private:
- ICVarIteratorInternal *m_pIter;
- };
-
-protected:
- // internals for ICVarIterator
- class ICVarIteratorInternal
- {
- public:
- // warning: delete called on 'ICvar::ICVarIteratorInternal' that is abstract but has non-virtual destructor [-Wdelete-non-virtual-dtor]
- virtual ~ICVarIteratorInternal() {}
- virtual void SetFirst( void ) = 0;
- virtual void Next( void ) = 0;
- virtual bool IsValid( void ) = 0;
- virtual ConCommandBase *Get( void ) = 0;
- };
-
- virtual ICVarIteratorInternal *FactoryInternalIterator( void ) = 0;
- friend class Iterator;
-};
-
-inline ICvar::Iterator::Iterator(ICvar *icvar)
-{
- m_pIter = icvar->FactoryInternalIterator();
-}
-
-inline ICvar::Iterator::~Iterator( void )
-{
- delete m_pIter;
-}
-
-inline void ICvar::Iterator::SetFirst( void )
-{
- m_pIter->SetFirst();
-}
-
-inline void ICvar::Iterator::Next( void )
-{
- m_pIter->Next();
-}
-
-inline bool ICvar::Iterator::IsValid( void )
-{
- return m_pIter->IsValid();
-}
-
-inline ConCommandBase * ICvar::Iterator::Get( void )
-{
- return m_pIter->Get();
-}
-
-#define CVAR_INTERFACE_VERSION "VEngineCvar004"
-
-
-//-----------------------------------------------------------------------------
-// These global names are defined by tier1.h, duplicated here so you
-// don't have to include tier1.h
-//-----------------------------------------------------------------------------
-
-// These are marked DLL_EXPORT for Linux.
-DLL_EXPORT ICvar *cvar;
-extern ICvar *g_pCVar;
-
-
-#endif // ICVAR_H
+//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//===========================================================================// + +#ifndef ICVAR_H +#define ICVAR_H +#ifdef _WIN32 +#pragma once +#endif + +#include "appframework/IAppSystem.h" +#include "tier1/iconvar.h" + +class ConCommandBase; +class ConCommand; +class ConVar; +class Color; + + +//----------------------------------------------------------------------------- +// ConVars/ComCommands are marked as having a particular DLL identifier +//----------------------------------------------------------------------------- +typedef int CVarDLLIdentifier_t; + + +//----------------------------------------------------------------------------- +// Used to display console messages +//----------------------------------------------------------------------------- +abstract_class IConsoleDisplayFunc +{ +public: + virtual void ColorPrint( const Color& clr, const char *pMessage ) = 0; + virtual void Print( const char *pMessage ) = 0; + virtual void DPrint( const char *pMessage ) = 0; +}; + + +//----------------------------------------------------------------------------- +// Purpose: Applications can implement this to modify behavior in ICvar +//----------------------------------------------------------------------------- +#define CVAR_QUERY_INTERFACE_VERSION "VCvarQuery001" +abstract_class ICvarQuery : public IAppSystem +{ +public: + // Can these two convars be aliased? + virtual bool AreConVarsLinkable( const ConVar *child, const ConVar *parent ) = 0; +}; + + +//----------------------------------------------------------------------------- +// Purpose: DLL interface to ConVars/ConCommands +//----------------------------------------------------------------------------- +abstract_class ICvar : public IAppSystem +{ +public: + // Allocate a unique DLL identifier + virtual CVarDLLIdentifier_t AllocateDLLIdentifier() = 0; + + // Register, unregister commands + virtual void RegisterConCommand( ConCommandBase *pCommandBase ) = 0; + virtual void UnregisterConCommand( ConCommandBase *pCommandBase ) = 0; + virtual void UnregisterConCommands( CVarDLLIdentifier_t id ) = 0; + + // If there is a +<varname> <value> on the command line, this returns the value. + // Otherwise, it returns NULL. + virtual const char* GetCommandLineValue( const char *pVariableName ) = 0; + + // Try to find the cvar pointer by name + virtual ConCommandBase *FindCommandBase( const char *name ) = 0; + virtual const ConCommandBase *FindCommandBase( const char *name ) const = 0; + virtual ConVar *FindVar ( const char *var_name ) = 0; + virtual const ConVar *FindVar ( const char *var_name ) const = 0; + virtual ConCommand *FindCommand( const char *name ) = 0; + virtual const ConCommand *FindCommand( const char *name ) const = 0; + + // Get first ConCommandBase to allow iteration + virtual ConCommandBase *GetCommands( void ) = 0; + virtual const ConCommandBase *GetCommands( void ) const = 0; + + // Install a global change callback (to be called when any convar changes) + virtual void InstallGlobalChangeCallback( FnChangeCallback_t callback ) = 0; + virtual void RemoveGlobalChangeCallback( FnChangeCallback_t callback ) = 0; + virtual void CallGlobalChangeCallbacks( ConVar *var, const char *pOldString, float flOldValue ) = 0; + + // Install a console printer + virtual void InstallConsoleDisplayFunc( IConsoleDisplayFunc* pDisplayFunc ) = 0; + virtual void RemoveConsoleDisplayFunc( IConsoleDisplayFunc* pDisplayFunc ) = 0; + virtual void ConsoleColorPrintf( const Color& clr, PRINTF_FORMAT_STRING const char *pFormat, ... ) const = 0; + virtual void ConsolePrintf( PRINTF_FORMAT_STRING const char *pFormat, ... ) const = 0; + virtual void ConsoleDPrintf( PRINTF_FORMAT_STRING const char *pFormat, ... ) const = 0; + + // Reverts cvars which contain a specific flag + virtual void RevertFlaggedConVars( int nFlag ) = 0; + + // Method allowing the engine ICvarQuery interface to take over + // A little hacky, owing to the fact the engine is loaded + // well after ICVar, so we can't use the standard connect pattern + virtual void InstallCVarQuery( ICvarQuery *pQuery ) = 0; + +#if defined( _X360 ) + virtual void PublishToVXConsole( ) = 0; +#endif + virtual bool IsMaterialThreadSetAllowed( ) const = 0; + virtual void QueueMaterialThreadSetValue( ConVar *pConVar, const char *pValue ) = 0; + virtual void QueueMaterialThreadSetValue( ConVar *pConVar, int nValue ) = 0; + virtual void QueueMaterialThreadSetValue( ConVar *pConVar, float flValue ) = 0; + virtual bool HasQueuedMaterialThreadConVarSets() const = 0; + virtual int ProcessQueuedMaterialThreadConVarSets() = 0; + +protected: class ICVarIteratorInternal; +public: + /// Iteration over all cvars. + /// (THIS IS A SLOW OPERATION AND YOU SHOULD AVOID IT.) + /// usage: + /// { ICVar::Iterator iter(g_pCVar); + /// for ( iter.SetFirst() ; iter.IsValid() ; iter.Next() ) + /// { + /// ConCommandBase *cmd = iter.Get(); + /// } + /// } + /// The Iterator class actually wraps the internal factory methods + /// so you don't need to worry about new/delete -- scope takes care + // of it. + /// We need an iterator like this because we can't simply return a + /// pointer to the internal data type that contains the cvars -- + /// it's a custom, protected class with unusual semantics and is + /// prone to change. + class Iterator + { + public: + inline Iterator(ICvar *icvar); + inline ~Iterator(void); + inline void SetFirst( void ); + inline void Next( void ); + inline bool IsValid( void ); + inline ConCommandBase *Get( void ); + private: + ICVarIteratorInternal *m_pIter; + }; + +protected: + // internals for ICVarIterator + class ICVarIteratorInternal + { + public: + // warning: delete called on 'ICvar::ICVarIteratorInternal' that is abstract but has non-virtual destructor [-Wdelete-non-virtual-dtor] + virtual ~ICVarIteratorInternal() {} + virtual void SetFirst( void ) = 0; + virtual void Next( void ) = 0; + virtual bool IsValid( void ) = 0; + virtual ConCommandBase *Get( void ) = 0; + }; + + virtual ICVarIteratorInternal *FactoryInternalIterator( void ) = 0; + friend class Iterator; +}; + +inline ICvar::Iterator::Iterator(ICvar *icvar) +{ + m_pIter = icvar->FactoryInternalIterator(); +} + +inline ICvar::Iterator::~Iterator( void ) +{ + delete m_pIter; +} + +inline void ICvar::Iterator::SetFirst( void ) +{ + m_pIter->SetFirst(); +} + +inline void ICvar::Iterator::Next( void ) +{ + m_pIter->Next(); +} + +inline bool ICvar::Iterator::IsValid( void ) +{ + return m_pIter->IsValid(); +} + +inline ConCommandBase * ICvar::Iterator::Get( void ) +{ + return m_pIter->Get(); +} + +#define CVAR_INTERFACE_VERSION "VEngineCvar004" + + +//----------------------------------------------------------------------------- +// These global names are defined by tier1.h, duplicated here so you +// don't have to include tier1.h +//----------------------------------------------------------------------------- + +// These are marked DLL_EXPORT for Linux. +DLL_EXPORT ICvar *cvar; +extern ICvar *g_pCVar; + + +#endif // ICVAR_H |