1
0
mirror of https://github.com/alliedmodders/hl2sdk.git synced 2025-09-19 20:16:10 +08:00
Files
hl2sdk/public/interfaces/interfaces.h

587 lines
23 KiB
C
Raw Normal View History

//===== Copyright <20> 2005-2005, Valve Corporation, All rights reserved. ======//
//
// Purpose: A higher level link library for general use in the game and tools.
//
//===========================================================================//
#ifndef INTERFACES_H
#define INTERFACES_H
#if defined( COMPILER_MSVC )
#pragma once
#endif
//-----------------------------------------------------------------------------
// Interface creation function
//-----------------------------------------------------------------------------
typedef void* (*CreateInterfaceFn)(const char *pName, int *pReturnCode);
//-----------------------------------------------------------------------------
// Macros to declare interfaces appropriate for various tiers
//-----------------------------------------------------------------------------
#if 1 || defined( TIER1_LIBRARY ) || defined( TIER2_LIBRARY ) || defined( TIER3_LIBRARY ) || defined( TIER4_LIBRARY ) || defined( APPLICATION )
#define DECLARE_TIER1_INTERFACE( _Interface, _Global ) extern _Interface * _Global;
#else
#define DECLARE_TIER1_INTERFACE( _Interface, _Global )
#endif
#if 1 || defined( TIER2_LIBRARY ) || defined( TIER3_LIBRARY ) || defined( TIER4_LIBRARY ) || defined( APPLICATION )
#define DECLARE_TIER2_INTERFACE( _Interface, _Global ) extern _Interface * _Global;
#else
#define DECLARE_TIER2_INTERFACE( _Interface, _Global )
#endif
#if 1 || defined( TIER3_LIBRARY ) || defined( TIER4_LIBRARY ) || defined( APPLICATION )
#define DECLARE_TIER3_INTERFACE( _Interface, _Global ) extern _Interface * _Global;
#else
#define DECLARE_TIER3_INTERFACE( _Interface, _Global )
#endif
//-----------------------------------------------------------------------------
// Forward declarations
//-----------------------------------------------------------------------------
class ICvar;
class IProcessUtils;
class ILocalize;
class IPhysics2;
class IPhysics2ResourceManager;
class IEventSystem;
class IAsyncFileSystem;
class IColorCorrectionSystem;
class IDebugTextureInfo;
2015-07-09 13:07:26 -04:00
class IBaseFileSystem;
class IFileSystem;
class IRenderHardwareConfig;
class IInputSystem;
class IInputStackSystem;
class IMaterialSystem;
class IMdlLib;
class INetworkSystem;
2015-07-09 13:07:26 -04:00
class INetworkSystemUtils;
class IP4;
class IQueuedLoader;
class IRenderDevice;
2015-07-09 13:07:26 -04:00
class IRenderDeviceSetup;
class IRenderDeviceMgr;
2015-07-09 13:07:26 -04:00
class IRenderUtils;
class IResourceSystem;
2015-07-09 13:07:26 -04:00
class IResourceSystemTools;
class IVBAllocTracker;
class IXboxInstaller;
class IMatchFramework;
class ISoundSystem;
class IMatSystemSurface;
class IGameUISystemMgr;
class IDataCache;
class IAvi;
class IBik;
2015-07-09 13:07:26 -04:00
class IQuickTime;
class IDmeMakefileUtils;
class ISoundEmitterSystemBase;
2015-07-09 13:07:26 -04:00
class ISoundEmitterSystemBaseS1;
class IMeshSystem;
2015-07-09 13:07:26 -04:00
class IMeshUtils;
class IWorldRendererMgr;
class ISceneSystem;
2015-07-09 13:07:26 -04:00
class ISceneUtils;
class IVGuiRenderSurface;
2015-07-09 13:07:26 -04:00
class IResourceManifestRegistry;
class IResourceHandleUtils;
class ISchemaSystem;
class IResourceCompilerSystem;
class IPostProcessingSystem;
class ISoundMixGroupSystem;
class ISoundOpSystemEdit;
class ISoundOpSystem;
class IAssetSystem;
class IAssetSystemTest;
class IParticleSystemMgr;
class IVScriptManager;
class IToolScriptManager;
class IPropertyEditorSystem;
class IModelProcessingSystem;
class IPanoramaUI;
class IToolFramework2;
class IMapBuilderMgr;
class IHelpSystem;
class IToolSceneNodeFactory;
class IToolGameSimulationSystem;
class IToolGameSimulationDispatcher;
class ISchemaTestExternal_Two;
class ISchemaTestExternal_One;
class IAnimationSystem;
class IAnimationSystemUtils;
class IHammerMapLoader;
class IMaterialUtils;
class IFontManager;
class ITextLayout;
class IAssetPreviewSystem;
class IAssetBrowserSystem;
class IVConComm;
class IConfigurationSystem;
class INetworkMessages;
class IFlattenedSerializers;
class ISource2Client;
class ISource2ClientPrediction;
class ISource2Server;
class ISource2ServerSerializers;
class ISource2Host;
class ISource2GameClients;
class ISource2GameEntities;
class IEngineServiceMgr;
class IHostStateMgr;
class INetworkService;
class INetworkClientService;
class INetworkServerService;
class ITextMessageMgr;
class IToolService;
class IRenderService;
class IStatsService;
class IUserInfoChangeService;
class IVProfService;
class IInputService;
class IMapListService;
class IGameUIService;
class ISoundService;
class IBenchmarkService;
class IDebugService;
class IKeyValueCache;
class IGameResourceServiceClient;
class IGameResourceServiceServer;
class ISource2EngineToClient;
class ISource2EngineToServer;
class ISource2EngineToServerStringTable;
class ISource2EngineToClientStringTable;
class ISource2EngineSoundServer;
class ISource2EngineSoundClient;
class IServerUploadGameStats;
class IScaleformUI;
class IVR;
namespace vgui
{
class ISurface;
class IVGui;
class IInput;
class IPanel;
class ILocalize;
class ISchemeManager;
class ISystem;
}
//-----------------------------------------------------------------------------
// Fills out global DLL exported interface pointers
//-----------------------------------------------------------------------------
#define CVAR_INTERFACE_VERSION "VEngineCvar007"
DECLARE_TIER1_INTERFACE( ICvar, cvar );
DECLARE_TIER1_INTERFACE( ICvar, g_pCVar )
#define PROCESS_UTILS_INTERFACE_VERSION "VProcessUtils002"
DECLARE_TIER1_INTERFACE( IProcessUtils, g_pProcessUtils );
2015-07-09 13:07:26 -04:00
#define VPHYSICS2_INTERFACE_VERSION "Physics2 Interface Old v0.5"
DECLARE_TIER1_INTERFACE( IPhysics2, g_pPhysics2 );
2015-07-09 13:07:26 -04:00
#define VPHYSICS2_RESOURCE_MGR_INTERFACE_VERSION "VPhysX Interface ResourceMgr v0.1"
DECLARE_TIER1_INTERFACE( IPhysics2ResourceManager, g_pPhysics2ResourceManager );
#define EVENTSYSTEM_INTERFACE_VERSION "EventSystem001"
DECLARE_TIER1_INTERFACE( IEventSystem, g_pEventSystem );
#define LOCALIZE_INTERFACE_VERSION "Localize_001"
DECLARE_TIER2_INTERFACE( ILocalize, g_pLocalize );
DECLARE_TIER3_INTERFACE( vgui::ILocalize, g_pVGuiLocalize );
#define RENDER_DEVICE_MGR_INTERFACE_VERSION "RenderDeviceMgr001"
DECLARE_TIER2_INTERFACE( IRenderDeviceMgr, g_pRenderDeviceMgr );
2015-07-09 13:07:26 -04:00
#define RENDER_UTILS_INTERFACE_VERSION "RenderUtils_001"
DECLARE_TIER2_INTERFACE( IRenderUtils, g_pRenderUtils );
#define BASEFILESYSTEM_INTERFACE_VERSION "VBaseFileSystem011"
DECLARE_TIER2_INTERFACE( IBaseFileSystem, g_pBaseFileSystem );
#define FILESYSTEM_INTERFACE_VERSION "VFileSystem017"
DECLARE_TIER2_INTERFACE( IFileSystem, g_pFullFileSystem );
#define ASYNCFILESYSTEM_INTERFACE_VERSION "VNewAsyncFileSystem001"
DECLARE_TIER2_INTERFACE( IAsyncFileSystem, g_pAsyncFileSystem );
2015-07-09 13:07:26 -04:00
#define RESOURCESYSTEM_INTERFACE_VERSION "ResourceSystem009"
DECLARE_TIER2_INTERFACE( IResourceSystem, g_pResourceSystem );
2015-07-09 13:07:26 -04:00
#define RESOURCESYSTEMTOOLS_INTERFACE_VERSION "ResourceSystemTools001"
DECLARE_TIER2_INTERFACE( IResourceSystemTools, g_pResourceSystemTools );
#define RESOURCEMANIFESTREGISTRY_INTERFACE_VERSION "ResourceManifestRegistry001"
DECLARE_TIER2_INTERFACE( IResourceManifestRegistry, g_pResourceManifestRegistry );
#define RESOURCEHANDLEUTILS_INTERFACE_VERSION "ResourceHandleUtils001"
DECLARE_TIER2_INTERFACE( IResourceHandleUtils, g_pResourceHandleUtils );
#define SCHEMASYSTEM_INTERFACE_VERSION "SchemaSystem_001"
DECLARE_TIER2_INTERFACE( ISchemaSystem, g_pSchemaSystem );
#define RESOURCECOMPILERSYSTEM_INTERFACE_VERSION "ResourceCompilerSystem001"
DECLARE_TIER2_INTERFACE( IResourceCompilerSystem, g_pResourceCompilerSystem );
#define POSTPROCESSINGSYSTEM_INTERFACE_VERSION "PostProcessingSystem_001"
DECLARE_TIER2_INTERFACE( IPostProcessingSystem, g_pPostProcessingSystem );
#define MATERIAL_SYSTEM2_INTERFACE_VERSION "VMaterialSystem2_001"
2015-07-09 13:07:26 -04:00
DECLARE_TIER2_INTERFACE( IMaterialSystem, g_pMaterialSystem );
#define INPUTSYSTEM_INTERFACE_VERSION "InputSystemVersion001"
DECLARE_TIER2_INTERFACE( IInputSystem, g_pInputSystem );
#define INPUTSTACKSYSTEM_INTERFACE_VERSION "InputStackSystemVersion001"
DECLARE_TIER2_INTERFACE( IInputStackSystem, g_pInputStackSystem );
2015-07-09 13:07:26 -04:00
#define NETWORKSYSTEM_INTERFACE_VERSION "NetworkSystemVersion001"
DECLARE_TIER2_INTERFACE( INetworkSystem, g_pNetworkSystem );
2015-07-09 13:07:26 -04:00
#define NETWORKSYSTEMUTILS_INTERFACE_VERSION "NetworkSystemUtilsVersion001"
DECLARE_TIER2_INTERFACE( INetworkSystemUtils, g_pNetworkSystemUtils );
#define NETWORKMESSAGES_INTERFACE_VERSION "NetworkMessagesVersion001"
DECLARE_TIER2_INTERFACE( INetworkMessages, g_pNetworkMessages );
#define DEBUG_TEXTURE_INFO_VERSION "DebugTextureInfo001"
DECLARE_TIER2_INTERFACE( IDebugTextureInfo, g_pMaterialSystemDebugTextureInfo );
#define VB_ALLOC_TRACKER_INTERFACE_VERSION "VBAllocTracker001"
DECLARE_TIER2_INTERFACE( IVBAllocTracker, g_VBAllocTracker );
#define COLORCORRECTION_INTERFACE_VERSION "COLORCORRECTION_VERSION_1"
DECLARE_TIER2_INTERFACE( IColorCorrectionSystem, colorcorrection );
2015-07-09 13:07:26 -04:00
#define P4_INTERFACE_VERSION "VP4003"
DECLARE_TIER2_INTERFACE( IP4, p4 );
#define MDLLIB_INTERFACE_VERSION "VMDLLIB001"
DECLARE_TIER2_INTERFACE( IMdlLib, mdllib );
#define QUEUEDLOADER_INTERFACE_VERSION "QueuedLoaderVersion001"
DECLARE_TIER2_INTERFACE( IQueuedLoader, g_pQueuedLoader );
#if defined( _X360 )
#define XBOXINSTALLER_INTERFACE_VERSION "XboxInstallerVersion001"
DECLARE_TIER2_INTERFACE( IXboxInstaller, g_pXboxInstaller );
#endif
#define MATCHFRAMEWORK_INTERFACE_VERSION "MATCHFRAMEWORK_001"
DECLARE_TIER2_INTERFACE( IMatchFramework, g_pMatchFramework );
//-----------------------------------------------------------------------------
// Not exactly a global, but we're going to keep track of these here anyways
// NOTE: Appframework deals with connecting these bad boys. See materialsystem2app.cpp
//-----------------------------------------------------------------------------
2015-07-09 13:07:26 -04:00
#define RENDER_DEVICE_INTERFACE_VERSION "RenderDevice002"
DECLARE_TIER2_INTERFACE(IRenderDevice, g_pRenderDevice);
#define RENDER_DEVICE_SETUP_INTERFACE_VERSION "VRenderDeviceSetupV001"
DECLARE_TIER2_INTERFACE( IRenderDeviceSetup, g_pRenderDeviceSetup );
2015-07-09 13:07:26 -04:00
#define RENDER_HARDWARECONFIG_INTERFACE_VERSION "RenderHardwareConfig002"
DECLARE_TIER2_INTERFACE( IRenderHardwareConfig, g_pRenderHardwareConfig );
#define SOUNDSYSTEM_INTERFACE_VERSION "SoundSystem001"
DECLARE_TIER2_INTERFACE( ISoundSystem, g_pSoundSystem );
2015-07-09 13:07:26 -04:00
#define SOUNDMIXGROUPSYSTEM_INTERFACE_VERSION "SoundMixGroupSystem001"
DECLARE_TIER2_INTERFACE( ISoundMixGroupSystem, g_pSoundMixGroupSystem);
#define SOUNDOPSYSTEMEDIT_INTERFACE_VERSION "SoundOpSystemEdit001"
DECLARE_TIER2_INTERFACE( ISoundOpSystemEdit, g_pSoundOpSystemEdit );
#define SOUNDOPSYSTEM_INTERFACE_VERSION "SoundOpSystem001"
DECLARE_TIER2_INTERFACE( ISoundOpSystem, g_pSoundOpSystem );
#define MESHSYSTEM_INTERFACE_VERSION "MeshSystem001"
DECLARE_TIER3_INTERFACE( IMeshSystem, g_pMeshSystem );
2015-07-09 13:07:26 -04:00
#define MESHUTILS_INTERFACE_VERSION "MeshUtils001"
DECLARE_TIER3_INTERFACE( IMeshUtils, g_pMeshUtils );
#define RENDER_SYSTEM_SURFACE_INTERFACE_VERSION "RenderSystemSurface001"
DECLARE_TIER3_INTERFACE( IVGuiRenderSurface, g_pVGuiRenderSurface );
2015-07-09 13:07:26 -04:00
#define ASSETSYSTEM_INTERFACE_VERSION "AssetSystem001"
DECLARE_TIER3_INTERFACE( IAssetSystem, g_pAssetSystem );
#define ASSETSYSTEMTEST_INTERFACE_VERSION "AssetSystemTest001"
DECLARE_TIER3_INTERFACE( IAssetSystemTest, g_pAssetSystemTest );
#define PARTICLESYSTEMMGR_INTERFACE_VERSION "ParticleSystemMgr002"
DECLARE_TIER3_INTERFACE( IParticleSystemMgr, g_pParticleSystemMgr );
#define VSCRIPT_INTERFACE_VERSION "VScriptManager010"
DECLARE_TIER3_INTERFACE( IVScriptManager, g_pVScriptService );
#define TOOLSCRIPTMANAGER_INTERFACE_VERSION "ToolScriptManager001"
DECLARE_TIER3_INTERFACE( IToolScriptManager, g_pToolScriptManager );
#define PROPERTYEDITORSYSTEM_INTERFACE_VERSION "PropertyEditorSystem_001"
DECLARE_TIER3_INTERFACE( IPropertyEditorSystem, g_pPropertyEditorSystem );
#define MODELPROCESSINGSYSTEM_INTERFACE_VERSION "ModelProcessingSystem001"
DECLARE_TIER3_INTERFACE( IModelProcessingSystem, g_pModelProcessingSystem );
#define PANORAMAUI_INTERFACE_VERSION "PanoramaUI001"
DECLARE_TIER3_INTERFACE( IPanoramaUI, g_pPanoramaUI );
#define TOOLFRAMEWORK2_INTERFACE_VERSION "ToolFramework2_001"
DECLARE_TIER3_INTERFACE( IToolFramework2, g_pToolFramework2 );
#define WORLDRENDERERBUILDER_INTERFACE_VERSION "WorldRendererBuilderMgr001"
DECLARE_TIER3_INTERFACE( IMapBuilderMgr, g_pWorldRendererBuilderMgr );
#define LIGHTINGBUILDER_INTERFACE_VERSION "LightingBuilderMgr001"
DECLARE_TIER3_INTERFACE( IMapBuilderMgr, g_pLightingBuilderMgr );
#define PHYSICSBUILDER_INTERFACE_VERSION "PhysicsBuilderMgr001"
DECLARE_TIER3_INTERFACE( IMapBuilderMgr, g_pPhysicsBuilderMgr );
#define VISBUILDER_INTERFACE_VERSION "VisBuilder_001"
DECLARE_TIER3_INTERFACE( IMapBuilderMgr, g_pVisBuilderMgr );
#define ENVIRONMENTBUILDER_INTERFACE_VERSION "EnvironmentMapBuilder_001"
DECLARE_TIER3_INTERFACE( IMapBuilderMgr, g_pEnvironmentBuilderMgr );
#define BAKEDLODBUILDER_INTERFACE_VERSION "BakedLODBuilderMgr001"
DECLARE_TIER3_INTERFACE( IMapBuilderMgr, g_pBakedLODBuilderMgr );
#define HELPSYSTEM_INTERFACE_VERSION "HelpSystem_001"
DECLARE_TIER3_INTERFACE( IHelpSystem, g_pHelpSystem );
#define TOOLSCENENODEFACTORY_INTERFACE_VERSION "ToolSceneNodeFactory_001"
DECLARE_TIER3_INTERFACE( IToolSceneNodeFactory, g_pToolSceneNodeFactory );
#define TOOLGAMESIMULATIONSYSTEM_INTERFACE_VERSION "ToolGameSimulationSystem_001"
DECLARE_TIER3_INTERFACE( IToolGameSimulationSystem, g_pToolGameSimulationSystem );
#define TOOLGAMESIMULATIONDISPATCHER_INTERFACE_VERSION "ToolGameSimulationDispatcher_001"
DECLARE_TIER3_INTERFACE( IToolGameSimulationDispatcher, g_pToolGameSimulationDispatcher );
#define SCHEMATESTEXTERNALTWO_INTERFACE_VERSION "SchemaTestExternal_Two_001"
DECLARE_TIER3_INTERFACE( ISchemaTestExternal_Two, g_pSchemaTestExternal_Two );
#define SCHEMATESTEXTERNALONE_INTERFACE_VERSION "SchemaTestExternal_One_001"
DECLARE_TIER3_INTERFACE( ISchemaTestExternal_One, g_pSchemaTestExternal_One );
#define ANIMATIONSYSTEM_INTERFACE_VERSION "AnimationSystem_001"
DECLARE_TIER3_INTERFACE( IAnimationSystem, g_pAnimationSystem );
#define ANIMATIONSYSTEMUTILS_INTERFACE_VERSION "AnimationSystemUtils_001"
DECLARE_TIER3_INTERFACE( IAnimationSystemUtils, g_pAnimationSystemUtils );
#define HAMMERMAPLOADER_INTERFACE_VERSION "HammerMapLoader001"
DECLARE_TIER3_INTERFACE( IHammerMapLoader, g_pHammerMapLoader );
#define MATERIALUTILS_INTERFACE_VERSION "MaterialUtils_001"
DECLARE_TIER3_INTERFACE( IMaterialUtils, g_pMaterialUtils );
#define FONTMANAGER_INTERFACE_VERSION "FontManager_001"
DECLARE_TIER3_INTERFACE( IFontManager, g_pFontManager );
#define TEXTLAYOUT_INTERFACE_VERSION "TextLayout_001"
DECLARE_TIER3_INTERFACE( ITextLayout, g_pTextLayout );
#define ASSETPREVIEWSYSTEM_INTERFACE_VERSION "AssetPreviewSystem_001"
DECLARE_TIER3_INTERFACE( IAssetPreviewSystem, g_pAssetPreviewSystem );
#define ASSETBROWSERSYSTEM_INTERFACE_VERSION "AssetBrowserSystem_001"
DECLARE_TIER3_INTERFACE( IAssetBrowserSystem, g_pAssetBrowserSystem );
#define VCONCOMM_INTERFACE_VERSION "VConComm001"
DECLARE_TIER3_INTERFACE( IVConComm, g_pVConComm );
#define CONFIGURATIONSYSTEM_INTERFACE_VERSION "ConfigurationSystem_001"
DECLARE_TIER3_INTERFACE( IConfigurationSystem, g_pConfigurationSystem );
#define FLATTENEDSERIALIZERS_INTERFACE_VERSION "FlattenedSerializersVersion001"
DECLARE_TIER3_INTERFACE( IFlattenedSerializers, g_pFlattenedSerializers );
#define SOURCE2CLIENT_INTERFACE_VERSION "Source2Client001"
DECLARE_TIER3_INTERFACE( ISource2Client, g_pSource2Client );
#define SOURCE2CLIENTPREDICTION_INTERFACE_VERSION "Source2ClientPrediction001"
DECLARE_TIER3_INTERFACE( ISource2ClientPrediction, g_pSource2ClientPrediction );
#define SOURCE2SERVER_INTERFACE_VERSION "Source2Server001"
DECLARE_TIER3_INTERFACE( ISource2Server, g_pSource2Server );
#define SOURCE2SERVERSERIALIZERS_INTERFACE_VERSION "Source2ServerSerializers001"
DECLARE_TIER3_INTERFACE( ISource2ServerSerializers, g_pSource2ServerSerializers );
#define SOURCE2HOST_INTERFACE_VERSION "Source2Host001"
DECLARE_TIER3_INTERFACE( ISource2Host, g_pSource2Host );
#define SOURCE2GAMECLIENTS_INTERFACE_VERSION "Source2GameClients001"
DECLARE_TIER3_INTERFACE( ISource2GameClients, g_pSource2GameClients );
#define SOURCE2GAMEENTITIES_INTERFACE_VERSION "Source2GameEntities001"
DECLARE_TIER3_INTERFACE( ISource2GameEntities, g_pSource2GameEntities );
#define ENGINESERVICEMGR_INTERFACE_VERSION "EngineServiceMgr001"
DECLARE_TIER3_INTERFACE( IEngineServiceMgr, g_pEngineServiceMgr );
#define HOSTSTATEMGR_INTERFACE_VERSION "HostStateMgr001"
DECLARE_TIER3_INTERFACE( IHostStateMgr, g_pHostStateMgr );
#define NETWORKSERVICE_INTERFACE_VERSION "NetworkService_001"
DECLARE_TIER3_INTERFACE( INetworkService, g_pNetworkService );
#define NETWORKCLIENTSERVICE_INTERFACE_VERSION "NetworkClientService_001"
DECLARE_TIER3_INTERFACE( INetworkClientService, g_pNetworkClientService );
#define NETWORKSERVERSERVICE_INTERFACE_VERSION "NetworkServerService_001"
DECLARE_TIER3_INTERFACE( INetworkServerService, g_pNetworkServerService );
#define TEXTMESSAGEMGR_INTERFACE_VERSION "TextMessageMgr_001"
DECLARE_TIER3_INTERFACE( ITextMessageMgr, g_pTextMessageMgr );
#define TOOLSERVICE_INTERFACE_VERSION "ToolService_001"
DECLARE_TIER3_INTERFACE(IToolService, g_pToolService);
#define RENDERSERVICE_INTERFACE_VERSION "RenderService_001"
DECLARE_TIER3_INTERFACE( IRenderService, g_pRenderService );
#define STATSSERVICE_INTERFACE_VERSION "StatsService_001"
DECLARE_TIER3_INTERFACE( IStatsService, g_pStatsService );
#define USERINFOCHANGESERVICE_INTERFACE_VERSION "UserInfoChangeService_001"
DECLARE_TIER3_INTERFACE( IUserInfoChangeService, g_pUserInfoChangeService );
#define VPROFSERVICE_INTERFACE_VERSION "VProfService_001"
DECLARE_TIER3_INTERFACE( IVProfService, g_pVProfService );
#define INPUTSERVICE_INTERFACE_VERSION "InputService_001"
DECLARE_TIER3_INTERFACE( IInputService, g_pInputService );
#define MAPLISTSERVICE_INTERFACE_VERSION "MapListService_001"
DECLARE_TIER3_INTERFACE( IMapListService, g_pMapListService );
#define GAMEUISERVICE_INTERFACE_VERSION "GameUIService_001"
DECLARE_TIER3_INTERFACE( IGameUIService, g_pGameUIService );
#define SOUNDSERVICE_INTERFACE_VERSION "SoundService_001"
DECLARE_TIER3_INTERFACE( ISoundService, g_pSoundService );
#define BENCHMARKSERVICE_INTERFACE_VERSION "BenchmarkService001"
DECLARE_TIER3_INTERFACE( IBenchmarkService, g_pBenchmarkService );
#define DEBUGSERVICE_INTERFACE_VERSION "VDebugService_001"
DECLARE_TIER3_INTERFACE( IDebugService, g_pDebugService );
#define KEYVALUECACHE_INTERFACE_VERSION "KeyValueCache001"
DECLARE_TIER3_INTERFACE( IKeyValueCache, g_pKeyValueCache );
#define GAMERESOURCESERVICECLIENT_INTERFACE_VERSION "GameResourceServiceClientV001"
DECLARE_TIER3_INTERFACE( IGameResourceServiceClient, g_pGameResourceServiceClient );
#define GAMERESOURCESERVICESERVER_INTERFACE_VERSION "GameResourceServiceServerV001"
DECLARE_TIER3_INTERFACE( IGameResourceServiceServer, g_pGameResourceServiceServer );
#define SOURCE2ENGINETOCLIENT_INTERFACE_VERSION "Source2EngineToClient001"
DECLARE_TIER3_INTERFACE( ISource2EngineToClient, g_pSource2EngineToClient );
#define SOURCE2ENGINETOSERVER_INTERFACE_VERSION "Source2EngineToServer001"
DECLARE_TIER3_INTERFACE( ISource2EngineToServer, g_pSource2EngineToServer );
#define SOURCE2ENGINETOSERVERSTRINGTABLE_INTERFACE_VERSION "Source2EngineToServerStringTable001"
DECLARE_TIER3_INTERFACE( ISource2EngineToServerStringTable, g_pSource2EngineToServerStringTable );
#define SOURCE2ENGINETOCLIENTSTRINGTABLE_INTERFACE_VERSION "Source2EngineToClientStringTable001"
DECLARE_TIER3_INTERFACE( ISource2EngineToClientStringTable, g_pSource2EngineToClientStringTable );
#define SOURCE2ENGINESOUNDSERVER_INTERFACE_VERSION "Source2EngineSoundServer001"
DECLARE_TIER3_INTERFACE( ISource2EngineSoundServer, g_pSource2EngineSoundServer );
#define SOURCE2ENGINESOUNDCLIENT_INTERFACE_VERSION "Source2EngineSoundClient001"
DECLARE_TIER3_INTERFACE( ISource2EngineSoundClient, g_pSource2EngineSoundClient );
#define SCALEFORMUI_INTERFACE_VERSION "ScaleformUI001"
DECLARE_TIER3_INTERFACE( IScaleformUI, g_pScaleformUI );
#define SERVERUPLOADGAMESTATS_INTERFACE_VERSION "ServerUploadGameStats001"
DECLARE_TIER3_INTERFACE( IServerUploadGameStats, g_pServerUploadGameStats );
#define SCENESYSTEM_INTERFACE_VERSION "SceneSystem_002"
DECLARE_TIER3_INTERFACE( ISceneSystem, g_pSceneSystem );
2015-07-09 13:07:26 -04:00
#define SCENEUTILS_INTERFACE_VERSION "SceneUtils_001"
DECLARE_TIER3_INTERFACE( ISceneUtils, g_pSceneUtils );
#define VGUI_SURFACE_INTERFACE_VERSION "VGUI_Surface032"
DECLARE_TIER3_INTERFACE( vgui::ISurface, g_pVGuiSurface );
#define SCHEME_SURFACE_INTERFACE_VERSION "SchemeSurface001"
#define VGUI_INPUT_INTERFACE_VERSION "VGUI_Input005"
DECLARE_TIER3_INTERFACE( vgui::IInput, g_pVGuiInput );
#define VGUI_IVGUI_INTERFACE_VERSION "VGUI_ivgui008"
DECLARE_TIER3_INTERFACE( vgui::IVGui, g_pVGui );
2015-07-09 13:07:26 -04:00
#define VGUI_PANEL_INTERFACE_VERSION "VGUI_Panel010"
DECLARE_TIER3_INTERFACE( vgui::IPanel, g_pVGuiPanel );
#define VGUI_SCHEME_INTERFACE_VERSION "VGUI_Scheme010"
DECLARE_TIER3_INTERFACE( vgui::ISchemeManager, g_pVGuiSchemeManager );
#define VGUI_SYSTEM_INTERFACE_VERSION "VGUI_System010"
DECLARE_TIER3_INTERFACE( vgui::ISystem, g_pVGuiSystem );
#define DATACACHE_INTERFACE_VERSION "VDataCache003"
DECLARE_TIER3_INTERFACE( IDataCache, g_pDataCache ); // FIXME: Should IDataCache be in tier2?
#define AVI_INTERFACE_VERSION "VAvi001"
DECLARE_TIER3_INTERFACE( IAvi, g_pAVI );
#define BIK_INTERFACE_VERSION "VBik001"
DECLARE_TIER3_INTERFACE( IBik, g_pBIK );
2015-07-09 13:07:26 -04:00
#define QUICKTIME_INTERFACE_VERSION "IQuickTime001"
DECLARE_TIER3_INTERFACE( IQuickTime, g_pQuickTime );
#define DMEMAKEFILE_UTILS_INTERFACE_VERSION "VDmeMakeFileUtils001"
DECLARE_TIER3_INTERFACE( IDmeMakefileUtils, g_pDmeMakefileUtils );
#define SOUNDEMITTERSYSTEM_INTERFACE_VERSION "VSoundEmitter003"
DECLARE_TIER3_INTERFACE( ISoundEmitterSystemBase, g_pSoundEmitterSystem );
2015-07-09 13:07:26 -04:00
#define SOUNDEMITTERSYSTEMS1_INTERFACE_VERSION "VSoundEmitterS1_001"
DECLARE_TIER3_INTERFACE( ISoundEmitterSystemBaseS1, g_pSoundEmitterSystemS1 );
#define WORLD_RENDERER_MGR_INTERFACE_VERSION "WorldRendererMgr001"
DECLARE_TIER3_INTERFACE( IWorldRendererMgr, g_pWorldRendererMgr );
2015-07-09 13:07:26 -04:00
#define VR_INTERFACE_VERSION "VR_001"
DECLARE_TIER3_INTERFACE(IVR, vr);
//-----------------------------------------------------------------------------
// Fills out global DLL exported interface pointers
//-----------------------------------------------------------------------------
void ConnectInterfaces( CreateInterfaceFn *pFactoryList, int nFactoryCount );
void DisconnectInterfaces();
//-----------------------------------------------------------------------------
// Reconnects an interface
//-----------------------------------------------------------------------------
void ReconnectInterface( CreateInterfaceFn factory, const char *pInterfaceName );
#endif // INTERFACES_H