mirror of
https://github.com/alliedmodders/hl2sdk.git
synced 2025-01-07 09:43:40 +08:00
607 lines
24 KiB
C++
607 lines
24 KiB
C++
//===== 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
|
||
|
||
#include "tier0/interface.h"
|
||
|
||
// All interfaces derive from this.
|
||
class IBaseInterface
|
||
{
|
||
public:
|
||
virtual ~IBaseInterface() {}
|
||
};
|
||
|
||
typedef void* (*InstantiateInterfaceFn)();
|
||
|
||
// Used internally to register classes.
|
||
class InterfaceReg
|
||
{
|
||
public:
|
||
InterfaceReg(InstantiateInterfaceFn fn, const char *pName);
|
||
|
||
public:
|
||
InstantiateInterfaceFn m_CreateFn;
|
||
const char *m_pName;
|
||
|
||
InterfaceReg *m_pNext; // For the global list.
|
||
};
|
||
|
||
// Use this to expose an interface that can have multiple instances.
|
||
// e.g.:
|
||
// EXPOSE_INTERFACE( CInterfaceImp, IInterface, "MyInterface001" )
|
||
// This will expose a class called CInterfaceImp that implements IInterface (a pure class)
|
||
// clients can receive a pointer to this class by calling CreateInterface( "MyInterface001" )
|
||
//
|
||
// In practice, the shared header file defines the interface (IInterface) and version name ("MyInterface001")
|
||
// so that each component can use these names/vtables to communicate
|
||
//
|
||
// A single class can support multiple interfaces through multiple inheritance
|
||
//
|
||
// Use this if you want to write the factory function.
|
||
#if !defined(_STATIC_LINKED) || !defined(_SUBSYSTEM)
|
||
#define EXPOSE_INTERFACE_FN(functionName, interfaceName, versionName) \
|
||
static InterfaceReg __g_Create##interfaceName##_reg(functionName, versionName);
|
||
#else
|
||
#define EXPOSE_INTERFACE_FN(functionName, interfaceName, versionName) \
|
||
namespace _SUBSYSTEM \
|
||
{ \
|
||
static InterfaceReg __g_Create##interfaceName##_reg(functionName, versionName); \
|
||
}
|
||
#endif
|
||
|
||
#if !defined(_STATIC_LINKED) || !defined(_SUBSYSTEM)
|
||
#define EXPOSE_INTERFACE(className, interfaceName, versionName) \
|
||
static void* __Create##className##_interface() {return static_cast<interfaceName *>( new className );} \
|
||
static InterfaceReg __g_Create##className##_reg(__Create##className##_interface, versionName );
|
||
#else
|
||
#define EXPOSE_INTERFACE(className, interfaceName, versionName) \
|
||
namespace _SUBSYSTEM \
|
||
{ \
|
||
static void* __Create##className##_interface() {return static_cast<interfaceName *>( new className );} \
|
||
static InterfaceReg __g_Create##className##_reg(__Create##className##_interface, versionName ); \
|
||
}
|
||
#endif
|
||
|
||
// Use this to expose a singleton interface with a global variable you've created.
|
||
#if !defined(_STATIC_LINKED) || !defined(_SUBSYSTEM)
|
||
#define EXPOSE_SINGLE_INTERFACE_GLOBALVAR(className, interfaceName, versionName, globalVarName) \
|
||
static void* __Create##className##interfaceName##_interface() {return static_cast<interfaceName *>( &globalVarName );} \
|
||
static InterfaceReg __g_Create##className##interfaceName##_reg(__Create##className##interfaceName##_interface, versionName);
|
||
#else
|
||
#define EXPOSE_SINGLE_INTERFACE_GLOBALVAR(className, interfaceName, versionName, globalVarName) \
|
||
namespace _SUBSYSTEM \
|
||
{ \
|
||
static void* __Create##className##interfaceName##_interface() {return static_cast<interfaceName *>( &globalVarName );} \
|
||
static InterfaceReg __g_Create##className##interfaceName##_reg(__Create##className##interfaceName##_interface, versionName); \
|
||
}
|
||
#endif
|
||
|
||
// Use this to expose a singleton interface. This creates the global variable for you automatically.
|
||
#if !defined(_STATIC_LINKED) || !defined(_SUBSYSTEM)
|
||
#define EXPOSE_SINGLE_INTERFACE(className, interfaceName, versionName) \
|
||
static className __g_##className##_singleton; \
|
||
EXPOSE_SINGLE_INTERFACE_GLOBALVAR(className, interfaceName, versionName, __g_##className##_singleton)
|
||
#else
|
||
#define EXPOSE_SINGLE_INTERFACE(className, interfaceName, versionName) \
|
||
namespace _SUBSYSTEM \
|
||
{ \
|
||
static className __g_##className##_singleton; \
|
||
} \
|
||
EXPOSE_SINGLE_INTERFACE_GLOBALVAR(className, interfaceName, versionName, __g_##className##_singleton)
|
||
#endif
|
||
|
||
// interface return status
|
||
enum
|
||
{
|
||
IFACE_OK = 0,
|
||
IFACE_FAILED
|
||
};
|
||
|
||
//-----------------------------------------------------------------------------
|
||
// This function is automatically exported and allows you to access any interfaces exposed with the above macros.
|
||
// if pReturnCode is set, it will return one of the following values (IFACE_OK, IFACE_FAILED)
|
||
// extend this for other error conditions/code
|
||
//-----------------------------------------------------------------------------
|
||
DLL_EXPORT void* CreateInterface(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 IApplication;
|
||
class ICvar;
|
||
class IUtlStringTokenSystem;
|
||
class ITestScriptMgr;
|
||
class IProcessUtils;
|
||
class ILocalize;
|
||
class IMediaFoundation;
|
||
class IVPhysics2;
|
||
class VPhys2HandleInterface;
|
||
class IModelDocUtils;
|
||
class IAnimGraphEditorUtils;
|
||
class IExportSystem;
|
||
class IServerToolsInfo;
|
||
class IClientToolsInfo;
|
||
class INavSystem;
|
||
class INavGameTest;
|
||
class IAsyncFileSystem;
|
||
class IFileSystem;
|
||
class IRenderHardwareConfig;
|
||
class IInputSystem;
|
||
class IInputStackSystem;
|
||
class IMaterialSystem2;
|
||
class INetworkSystem;
|
||
class IP4;
|
||
class IRenderDevice;
|
||
class IRenderDeviceSetup;
|
||
class IRenderDeviceMgr;
|
||
class IRenderUtils;
|
||
class IResourceSystem;
|
||
class IMatchFramework;
|
||
class ISource2V8System;
|
||
class ISoundSystem;
|
||
class IAvi;
|
||
class IBik;
|
||
class IVRAD3;
|
||
class IMeshSystem;
|
||
class IMeshUtils;
|
||
class IWorldRendererMgr;
|
||
class ISceneSystem;
|
||
class IPulseSystem;
|
||
class ISceneUtils;
|
||
class IResourceManifestRegistry;
|
||
class IResourceHandleUtils;
|
||
class ISchemaSystem;
|
||
class IResourceCompilerSystem;
|
||
class IPostProcessingSystem;
|
||
class ISoundOpSystemEdit;
|
||
class ISoundOpSystem;
|
||
class ISteamAudio;
|
||
class IAssetSystem;
|
||
class IAssetSystemTest;
|
||
class IParticleSystemMgr;
|
||
class IScriptManager;
|
||
class IPropertyEditorSystem;
|
||
class IToolFramework2;
|
||
class IMapBuilderMgr;
|
||
class IHelpSystem;
|
||
class IToolSceneNodeFactory;
|
||
class IEconItemToolModel;
|
||
class ISchemaTestExternal_Two;
|
||
class ISchemaTestExternal_One;
|
||
class IAnimationSystem;
|
||
class IAnimationSystemUtils;
|
||
class IHammerMapLoader;
|
||
class IMaterialSystem2Utils;
|
||
class IFontManager;
|
||
class ITextLayout;
|
||
class IAssetPreviewSystem;
|
||
class IAssetBrowserSystem;
|
||
class IAssetRenameSystem;
|
||
class IVConComm;
|
||
class IModelProcessingServices;
|
||
class INetworkMessages;
|
||
class IFlattenedSerializers;
|
||
class ISerializedEntities;
|
||
class IDemoUpconverter;
|
||
class ISource2Client;
|
||
class IClientUI;
|
||
class IPrediction2;
|
||
class ISource2Server;
|
||
class ISource2ServerConfig;
|
||
class ISource2Host;
|
||
class ISource2GameClients;
|
||
class ISource2GameEntities;
|
||
class IEngineServiceMgr;
|
||
class IHostStateMgr;
|
||
class INetworkService;
|
||
class INetworkClientService;
|
||
class INetworkServerService;
|
||
class INetworkP2PService;
|
||
class IToolService;
|
||
class IRenderService;
|
||
class IStatsService;
|
||
class IVProfService;
|
||
class IInputService;
|
||
class IMapListService;
|
||
class IGameUIService;
|
||
class ISoundService;
|
||
class IBenchmarkService;
|
||
class IKeyValueCache;
|
||
class IGameResourceService;
|
||
class IVEngineClient2;
|
||
class IVEngineServer2;
|
||
class INetworkStringTableContainer;
|
||
|
||
class IPanoramaUIEngine;
|
||
class IPanoramaUIClient;
|
||
|
||
namespace panorama
|
||
{
|
||
class IUITextServices;
|
||
};
|
||
|
||
//-----------------------------------------------------------------------------
|
||
// Fills out global DLL exported interface pointers
|
||
//-----------------------------------------------------------------------------
|
||
#define APPLICATION_INTERFACE_VERSION "VApplication001"
|
||
DECLARE_TIER1_INTERFACE( IApplication, g_pApplication );
|
||
|
||
#define CVAR_INTERFACE_VERSION "VEngineCvar007"
|
||
DECLARE_TIER1_INTERFACE( ICvar, cvar );
|
||
DECLARE_TIER1_INTERFACE( ICvar, g_pCVar );
|
||
|
||
#define STRINGTOKENSYSTEM_INTERFACE_VERSION "VStringTokenSystem001"
|
||
DECLARE_TIER1_INTERFACE( IUtlStringTokenSystem, g_pStringTokenSystem );
|
||
|
||
#define TESTSCRIPTMANAGER_INTERFACE_VERSION "TestScriptMgr001"
|
||
DECLARE_TIER1_INTERFACE( ITestScriptMgr, g_pTestScriptMgr );
|
||
|
||
#define PROCESSUTILS_INTERFACE_VERSION "VProcessUtils002"
|
||
DECLARE_TIER1_INTERFACE( IProcessUtils, g_pProcessUtils );
|
||
|
||
#define FILESYSTEM_INTERFACE_VERSION "VFileSystem017"
|
||
DECLARE_TIER2_INTERFACE( IFileSystem, g_pFullFileSystem );
|
||
|
||
#define ASYNCFILESYSTEM_INTERFACE_VERSION "VAsyncFileSystem2_001"
|
||
DECLARE_TIER2_INTERFACE( IAsyncFileSystem, g_pAsyncFileSystem );
|
||
|
||
#define RESOURCESYSTEM_INTERFACE_VERSION "ResourceSystem013"
|
||
DECLARE_TIER2_INTERFACE( IResourceSystem, g_pResourceSystem );
|
||
|
||
#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 MATERIAL_SYSTEM2_INTERFACE_VERSION "VMaterialSystem2_001"
|
||
DECLARE_TIER2_INTERFACE( IMaterialSystem2, g_pMaterialSystem2 );
|
||
|
||
#define POSTPROCESSINGSYSTEM_INTERFACE_VERSION "PostProcessingSystem_001"
|
||
DECLARE_TIER2_INTERFACE( IPostProcessingSystem, g_pPostProcessingSystem );
|
||
|
||
#define INPUTSYSTEM_INTERFACE_VERSION "InputSystemVersion001"
|
||
DECLARE_TIER2_INTERFACE( IInputSystem, g_pInputSystem );
|
||
|
||
#define INPUTSTACKSYSTEM_INTERFACE_VERSION "InputStackSystemVersion001"
|
||
DECLARE_TIER2_INTERFACE( IInputStackSystem, g_pInputStackSystem );
|
||
|
||
#define RENDER_DEVICE_MGR_INTERFACE_VERSION "RenderDeviceMgr001"
|
||
DECLARE_TIER2_INTERFACE( IRenderDeviceMgr, g_pRenderDeviceMgr );
|
||
|
||
#define RENDER_UTILS_INTERFACE_VERSION "RenderUtils_001"
|
||
DECLARE_TIER2_INTERFACE( IRenderUtils, g_pRenderUtils );
|
||
|
||
#define SOUNDSYSTEM_INTERFACE_VERSION "SoundSystem001"
|
||
DECLARE_TIER2_INTERFACE( ISoundSystem, g_pSoundSystem );
|
||
|
||
#define SOUNDOPSYSTEMEDIT_INTERFACE_VERSION "SoundOpSystemEdit001"
|
||
DECLARE_TIER2_INTERFACE( ISoundOpSystemEdit, g_pSoundOpSystemEdit );
|
||
|
||
#define SOUNDOPSYSTEM_INTERFACE_VERSION "SoundOpSystem001"
|
||
DECLARE_TIER2_INTERFACE( ISoundOpSystem, g_pSoundOpSystem );
|
||
|
||
#define STEAMAUDIO_INTERFACE_VERSION "SteamAudio001"
|
||
DECLARE_TIER2_INTERFACE( ISteamAudio, g_pSteamAudio );
|
||
|
||
#define P4_INTERFACE_VERSION "VP4003"
|
||
DECLARE_TIER2_INTERFACE( IP4, g_pP4 );
|
||
|
||
#define LOCALIZE_INTERFACE_VERSION "Localize_001"
|
||
DECLARE_TIER2_INTERFACE( ILocalize, g_pLocalize );
|
||
|
||
#define MEDIA_FOUNDATION_INTERFACE_VERSION "VMediaFoundation001"
|
||
DECLARE_TIER2_INTERFACE( IMediaFoundation, g_pMediaFoundation );
|
||
|
||
#define AVI_INTERFACE_VERSION "VAvi001"
|
||
DECLARE_TIER3_INTERFACE( IAvi, g_pAVI );
|
||
|
||
#define BIK_INTERFACE_VERSION "VBik001"
|
||
DECLARE_TIER3_INTERFACE( IBik, g_pBIK );
|
||
|
||
#define MESHSYSTEM_INTERFACE_VERSION "MeshSystem001"
|
||
DECLARE_TIER3_INTERFACE( IMeshSystem, g_pMeshSystem );
|
||
|
||
#define MESHUTILS_INTERFACE_VERSION "MeshUtils001"
|
||
DECLARE_TIER3_INTERFACE( IMeshUtils, g_pMeshUtils );
|
||
|
||
#define RENDER_DEVICE_INTERFACE_VERSION "RenderDevice003"
|
||
DECLARE_TIER3_INTERFACE( IRenderDevice, g_pRenderDevice );
|
||
|
||
#define RENDER_DEVICE_SETUP_INTERFACE_VERSION "VRenderDeviceSetupV001"
|
||
DECLARE_TIER3_INTERFACE( IRenderDeviceSetup, g_pRenderDeviceSetup );
|
||
|
||
#define RENDER_HARDWARECONFIG_INTERFACE_VERSION "RenderHardwareConfig002"
|
||
DECLARE_TIER3_INTERFACE( IRenderHardwareConfig, g_pRenderHardwareConfig );
|
||
|
||
#define SCENESYSTEM_INTERFACE_VERSION "SceneSystem_002"
|
||
DECLARE_TIER3_INTERFACE( ISceneSystem, g_pSceneSystem );
|
||
|
||
#define PULSESYSTEM_INTERFACE_VERSION "IPulseSystem_001"
|
||
DECLARE_TIER3_INTERFACE( IPulseSystem, g_pPulseSystem );
|
||
|
||
#define SCENEUTILS_INTERFACE_VERSION "SceneUtils_001"
|
||
DECLARE_TIER3_INTERFACE( ISceneUtils, g_pSceneUtils );
|
||
|
||
#define WORLD_RENDERER_MGR_INTERFACE_VERSION "WorldRendererMgr001"
|
||
DECLARE_TIER3_INTERFACE( IWorldRendererMgr, g_pWorldRendererMgr );
|
||
|
||
#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 "ParticleSystemMgr003"
|
||
DECLARE_TIER3_INTERFACE( IParticleSystemMgr, g_pParticleSystemMgr );
|
||
|
||
#define SCRIPTMANAGER_INTERFACE_VERSION "VScriptManager010"
|
||
DECLARE_TIER3_INTERFACE( IScriptManager, g_pScriptManager );
|
||
|
||
#define PROPERTYEDITORSYSTEM_INTERFACE_VERSION "PropertyEditorSystem_001"
|
||
DECLARE_TIER3_INTERFACE( IPropertyEditorSystem, g_pPropertyEditorSystem );
|
||
|
||
#define MATCHFRAMEWORK_INTERFACE_VERSION "MATCHFRAMEWORK_001"
|
||
DECLARE_TIER3_INTERFACE( IMatchFramework, g_pMatchFramework );
|
||
|
||
#define V8SYSTEM_INTERFACE_VERSION "Source2V8System001"
|
||
DECLARE_TIER3_INTERFACE( ISource2V8System, g_pV8System );
|
||
|
||
#define PANORAMAUIENGINE_INTERFACE_VERSION "PanoramaUIEngine001"
|
||
DECLARE_TIER3_INTERFACE( IPanoramaUIEngine, g_pPanoramaUIEngine );
|
||
|
||
#define PANORAMAUICLIENT_INTERFACE_VERSION "PanoramaUIClient001"
|
||
DECLARE_TIER3_INTERFACE( IPanoramaUIClient, g_pPanoramaUIClient );
|
||
|
||
#define PANORAMATEXTSERVICES_INTERFACE_VERSION "PanoramaTextServices001"
|
||
DECLARE_TIER3_INTERFACE( panorama::IUITextServices, g_IUITextServices );
|
||
|
||
#define TOOLFRAMEWORK2_INTERFACE_VERSION "ToolFramework2_002"
|
||
DECLARE_TIER3_INTERFACE( IToolFramework2, g_pToolFramework2 );
|
||
|
||
#define PHYSICSBUILDER_INTERFACE_VERSION "PhysicsBuilderMgr001"
|
||
DECLARE_TIER3_INTERFACE( IMapBuilderMgr, g_pPhysicsBuilderMgr );
|
||
|
||
#define VISBUILDER_INTERFACE_VERSION "VisBuilder_001"
|
||
DECLARE_TIER3_INTERFACE( IMapBuilderMgr, g_pVisBuilderMgr );
|
||
|
||
#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 ECONITEMTOOLMODEL_INTERFACE_VERSION "EconItemToolModel_001"
|
||
DECLARE_TIER3_INTERFACE( IEconItemToolModel, g_pEconItemToolModel );
|
||
|
||
#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( IMaterialSystem2Utils, g_pMaterialSystem2Utils );
|
||
|
||
#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 ASSETRENAMESYSTEM_INTERFACE_VERSION "AssetRenameSystem_001"
|
||
DECLARE_TIER3_INTERFACE( IAssetRenameSystem, g_pAssetRenameSystem );
|
||
|
||
#define VCONCOMM_INTERFACE_VERSION "VConComm001"
|
||
DECLARE_TIER3_INTERFACE( IVConComm, g_pVConComm );
|
||
|
||
#define MODELPROCESSINGSERVICES_INTERFACE_VERSION "MODEL_PROCESSING_SERVICES_INTERFACE_001"
|
||
DECLARE_TIER3_INTERFACE( IModelProcessingServices, g_pModelProcessingServices );
|
||
|
||
#define NETWORKSYSTEM_INTERFACE_VERSION "NetworkSystemVersion001"
|
||
DECLARE_TIER3_INTERFACE( INetworkSystem, g_pNetworkSystem );
|
||
|
||
#define NETWORKMESSAGES_INTERFACE_VERSION "NetworkMessagesVersion001"
|
||
DECLARE_TIER3_INTERFACE( INetworkMessages, g_pNetworkMessages );
|
||
|
||
#define FLATTENEDSERIALIZERS_INTERFACE_VERSION "FlattenedSerializersVersion001"
|
||
DECLARE_TIER3_INTERFACE( IFlattenedSerializers, g_pFlattenedSerializers );
|
||
|
||
#define SERIALIZEDENTITIES_INTERFACE_VERSION "SerializedEntitiesVersion001"
|
||
DECLARE_TIER3_INTERFACE( ISerializedEntities, g_pSerializedEntities );
|
||
|
||
#define DEMOUPCONVERTER_INTERFACE_VERSION "DemoUpconverterVersion001"
|
||
DECLARE_TIER3_INTERFACE( IDemoUpconverter, g_pDemoUpconverter );
|
||
|
||
#define SOURCE2CLIENT_INTERFACE_VERSION "Source2Client002"
|
||
DECLARE_TIER3_INTERFACE( ISource2Client, g_pSource2Client );
|
||
|
||
#define SOURCE2CLIENTUI_INTERFACE_VERSION "Source2ClientUI001"
|
||
DECLARE_TIER3_INTERFACE( IClientUI, g_pIClientUI );
|
||
|
||
#define SOURCE2CLIENTPREDICTION_INTERFACE_VERSION "Source2ClientPrediction001"
|
||
DECLARE_TIER3_INTERFACE( IPrediction2, g_pClientSidePrediction );
|
||
|
||
#define SOURCE2SERVER_INTERFACE_VERSION "Source2Server001"
|
||
DECLARE_TIER3_INTERFACE( ISource2Server, g_pSource2Server );
|
||
|
||
#define SOURCE2SERVERCONFIG_INTERFACE_VERSION "Source2ServerConfig001"
|
||
DECLARE_TIER3_INTERFACE( ISource2ServerConfig, g_pSource2ServerConfig );
|
||
|
||
#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 NETWORKP2PSERVICE_INTERFACE_VERSION "NetworkP2PService_001"
|
||
DECLARE_TIER3_INTERFACE( INetworkP2PService, g_pNetworkP2PService );
|
||
|
||
#define NETWORKSERVERSERVICE_INTERFACE_VERSION "NetworkServerService_001"
|
||
DECLARE_TIER3_INTERFACE( INetworkServerService, g_pNetworkServerService );
|
||
|
||
#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 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 KEYVALUECACHE_INTERFACE_VERSION "KeyValueCache001"
|
||
DECLARE_TIER3_INTERFACE( IKeyValueCache, g_pKeyValueCache );
|
||
|
||
#define GAMERESOURCESERVICECLIENT_INTERFACE_VERSION "GameResourceServiceClientV001"
|
||
DECLARE_TIER3_INTERFACE( IGameResourceService, g_pGameResourceServiceClient );
|
||
|
||
#define GAMERESOURCESERVICESERVER_INTERFACE_VERSION "GameResourceServiceServerV001"
|
||
DECLARE_TIER3_INTERFACE( IGameResourceService, g_pGameResourceServiceServer );
|
||
|
||
#define SOURCE2ENGINETOCLIENT_INTERFACE_VERSION "Source2EngineToClient001"
|
||
DECLARE_TIER3_INTERFACE( IVEngineClient2, g_pEngineClient );
|
||
|
||
#define SOURCE2ENGINETOSERVER_INTERFACE_VERSION "Source2EngineToServer001"
|
||
DECLARE_TIER3_INTERFACE( IVEngineServer2, g_pEngineServer );
|
||
|
||
#define SOURCE2ENGINETOSERVERSTRINGTABLE_INTERFACE_VERSION "Source2EngineToServerStringTable001"
|
||
DECLARE_TIER3_INTERFACE( INetworkStringTableContainer, g_pNetworkStringTableServer );
|
||
|
||
#define SOURCE2ENGINETOCLIENTSTRINGTABLE_INTERFACE_VERSION "Source2EngineToClientStringTable001"
|
||
DECLARE_TIER3_INTERFACE( INetworkStringTableContainer, g_pNetworkStringTableClient );
|
||
|
||
#define VPHYSICS2_INTERFACE_VERSION "VPhysics2_Interface_001"
|
||
DECLARE_TIER3_INTERFACE( IVPhysics2, g_pVPhysics2 );
|
||
|
||
#define VPHYSICS2HANDLE_INTERFACE_VERSION "VPhysics2_Handle_Interface_001"
|
||
DECLARE_TIER3_INTERFACE( VPhys2HandleInterface, g_pVPhys2HandleInterface );
|
||
|
||
#define MODELDOCUTILS_INTERFACE_VERSION "ModelDocUtils001"
|
||
DECLARE_TIER3_INTERFACE( IModelDocUtils, g_pModelDocUtils );
|
||
|
||
#define ANIMGRAPHEDITORUTILS_INTERFACE_VERSION "AnimGraphEditorUtils001"
|
||
DECLARE_TIER3_INTERFACE( IAnimGraphEditorUtils, g_pAnimGraphEditorUtils );
|
||
|
||
#define EXPORTSYSTEM_INTERFACE_VERSION "EXPORTSYSTEM_INTERFACE_VERSION_001"
|
||
DECLARE_TIER3_INTERFACE( IExportSystem, g_pExportSystem );
|
||
|
||
#define SERVERTOOLSINFO_INTERFACE_VERSION "ServerToolsInfo_001"
|
||
DECLARE_TIER3_INTERFACE( IServerToolsInfo, g_pServerToolsInfo );
|
||
|
||
#define CLIENTTOOLSINFO_INTERFACE_VERSION "ClientToolsInfo_001"
|
||
DECLARE_TIER3_INTERFACE( IClientToolsInfo, g_pClientToolsInfo );
|
||
|
||
#define VRAD3_INTERFACE_VERSION "Vrad3_001"
|
||
DECLARE_TIER3_INTERFACE( IVRAD3, g_pVRAD3 );
|
||
|
||
#define NAVSYSTEM_INTERFACE_VERSION "NavSystem001"
|
||
DECLARE_TIER3_INTERFACE( INavSystem, g_pNavSystem );
|
||
|
||
#define NAVGAMETEST_INTERFACE_VERSION "NavGameTest001"
|
||
DECLARE_TIER3_INTERFACE( INavGameTest, g_pNavGameTest );
|
||
|
||
//-----------------------------------------------------------------------------
|
||
// 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
|
||
|