mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-23 06:36:54 +00:00
111 lines
3.1 KiB
C++
111 lines
3.1 KiB
C++
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $Header: $
|
|
// $NoKeywords: $
|
|
//
|
|
//=============================================================================//
|
|
|
|
#ifndef MATERIALSYSTEM_GLOBAL_H
|
|
#define MATERIALSYSTEM_GLOBAL_H
|
|
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "imaterialsysteminternal.h"
|
|
#include "tier0/dbg.h"
|
|
#include "tier2/tier2.h"
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Forward declarations
|
|
//-----------------------------------------------------------------------------
|
|
class ITextureInternal;
|
|
class IShaderAPI;
|
|
class IHardwareConfigInternal;
|
|
class IShaderUtil;
|
|
class IShaderShadow;
|
|
class IShaderDeviceMgr;
|
|
class IShaderDevice;
|
|
class IShaderSystemInternal;
|
|
class IMaterialInternal;
|
|
class IColorCorrectionSystem;
|
|
class IMaterialVar;
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Constants used by the system
|
|
//-----------------------------------------------------------------------------
|
|
|
|
#define MATERIAL_MAX_PATH 256
|
|
|
|
// GR - limits for blured image (HDR stuff)
|
|
#define MAX_BLUR_IMAGE_WIDTH 256
|
|
#define MAX_BLUR_IMAGE_HEIGHT 192
|
|
|
|
#define CLAMP_BLUR_IMAGE_WIDTH( _w ) ( ( _w < MAX_BLUR_IMAGE_WIDTH ) ? _w : MAX_BLUR_IMAGE_WIDTH )
|
|
#define CLAMP_BLUR_IMAGE_HEIGHT( _h ) ( ( _h < MAX_BLUR_IMAGE_HEIGHT ) ? _h : MAX_BLUR_IMAGE_HEIGHT )
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Global structures
|
|
//-----------------------------------------------------------------------------
|
|
extern MaterialSystem_Config_t g_config;
|
|
extern uint32 g_nDebugVarsSignature;
|
|
|
|
//extern MaterialSystem_ErrorFunc_t Error;
|
|
//extern MaterialSystem_WarningFunc_t Warning;
|
|
|
|
extern int g_FrameNum;
|
|
|
|
extern IShaderAPI* g_pShaderAPI;
|
|
extern IShaderDeviceMgr* g_pShaderDeviceMgr;
|
|
extern IShaderDevice* g_pShaderDevice;
|
|
extern IShaderShadow* g_pShaderShadow;
|
|
|
|
extern IMaterialInternal *g_pErrorMaterial;
|
|
|
|
IShaderSystemInternal* ShaderSystem();
|
|
inline IShaderSystemInternal* ShaderSystem()
|
|
{
|
|
extern IShaderSystemInternal *g_pShaderSystem;
|
|
return g_pShaderSystem;
|
|
}
|
|
|
|
inline IHardwareConfigInternal *HardwareConfig()
|
|
{
|
|
extern IHardwareConfigInternal* g_pHWConfig;
|
|
return g_pHWConfig;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Accessor to get at the material system
|
|
//-----------------------------------------------------------------------------
|
|
inline IMaterialSystemInternal* MaterialSystem()
|
|
{
|
|
extern IMaterialSystemInternal *g_pInternalMaterialSystem;
|
|
return g_pInternalMaterialSystem;
|
|
}
|
|
|
|
inline IShaderUtil* ShaderUtil()
|
|
{
|
|
extern IShaderUtil *g_pShaderUtil;
|
|
return g_pShaderUtil;
|
|
}
|
|
|
|
extern IColorCorrectionSystem *g_pColorCorrectionSystem;
|
|
inline IColorCorrectionSystem *ColorCorrectionSystem()
|
|
{
|
|
return g_pColorCorrectionSystem;
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Global methods related to material vars
|
|
//-----------------------------------------------------------------------------
|
|
void EnableThreadedMaterialVarAccess( bool bEnable, IMaterialVar **ppParams, int nVarCount );
|
|
|
|
|
|
#endif // MATERIALSYSTEM_GLOBAL_H
|