aboutsummaryrefslogtreecommitdiff
path: root/mp/src/public/matsys_controls/matsyscontrols.h
blob: 85fa5807294045a43877aa8ff8e43fa06d4e2a56 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: 
//
// $NoKeywords: $
//=============================================================================//

#ifndef MATSYSCONTROLS_H
#define MATSYSCONTROLS_H

#ifdef _WIN32
#pragma once
#endif

#include "tier1/interface.h"


//-----------------------------------------------------------------------------
// Forward declarations
//-----------------------------------------------------------------------------
class IMaterialSystem;
class IMaterialSystemHardwareConfig;
class IMDLCache;
class IMatSystemSurface;
class IStudioRender;

namespace vgui
{

//-----------------------------------------------------------------------------
// handles the initialization of the vgui interfaces.
// NOTE: Calls into VGui_InitInterfacesList
// interfaces (listed below) are first attempted to be loaded from primaryProvider, then secondaryProvider
// moduleName should be the name of the module that this instance of the vgui_controls has been compiled into
//-----------------------------------------------------------------------------
bool VGui_InitMatSysInterfacesList( const char *moduleName, CreateInterfaceFn *factoryList, int numFactories );


//-----------------------------------------------------------------------------
// set of accessor functions to matsys interfaces
// the appropriate header file for each is listed above the item
//-----------------------------------------------------------------------------

// #include <materialsystem/imaterialsystem.h>
IMaterialSystem *MaterialSystem();

// #include <datacache/imdlcache.h>
IMDLCache *MDLCache();

// #include <VGuiMatSurface/IMatSystemSurface.h>
IMatSystemSurface *MatSystemSurface();

// #include <istudiorender.h"
IStudioRender *StudioRender();

// #include <materialsystem/imaterialsystemhardwareconfig.h>
IMaterialSystemHardwareConfig *MaterialSystemHardwareConfig();

} // end namespace vgui


//-----------------------------------------------------------------------------
// predeclare all the matsys control class names
//-----------------------------------------------------------------------------
class CMDLPanel;
class CMDLSequencePicker;
class CMDLPicker;
class CSequencePicker;
class CGameFileTreeView;


#endif // MATSYSCONTROLS_H