You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
2.9 KiB
100 lines
2.9 KiB
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $NoKeywords: $
|
|
//
|
|
//===========================================================================//
|
|
|
|
#ifndef SHADERAPIDX8_GLOBAL_H
|
|
#define SHADERAPIDX8_GLOBAL_H
|
|
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "tier0/dbg.h"
|
|
#include "tier0/memalloc.h"
|
|
#include "shaderapi_global.h"
|
|
#include "tier2/tier2.h"
|
|
#include "shaderdevicedx8.h"
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Use this to fill in structures with the current board state
|
|
//-----------------------------------------------------------------------------
|
|
|
|
#ifdef _DEBUG
|
|
#define DEBUG_BOARD_STATE 0
|
|
#endif
|
|
|
|
#if !defined( _X360 )
|
|
IDirect3DDevice9 *Dx9Device();
|
|
IDirect3D9 *D3D();
|
|
#endif
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Measures driver allocations
|
|
//-----------------------------------------------------------------------------
|
|
//#define MEASURE_DRIVER_ALLOCATIONS 1
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Forward declarations
|
|
//-----------------------------------------------------------------------------
|
|
class IShaderUtil;
|
|
class IVertexBufferDX8;
|
|
class IShaderShadowDX8;
|
|
class IMeshMgr;
|
|
class IShaderAPIDX8;
|
|
class IFileSystem;
|
|
class IShaderManager;
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// A new shader draw flag we need to workaround dx8
|
|
//-----------------------------------------------------------------------------
|
|
enum
|
|
{
|
|
SHADER_HAS_CONSTANT_COLOR = 0x80000000
|
|
};
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// The main shader API
|
|
//-----------------------------------------------------------------------------
|
|
extern IShaderAPIDX8 *g_pShaderAPIDX8;
|
|
inline IShaderAPIDX8* ShaderAPI()
|
|
{
|
|
return g_pShaderAPIDX8;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// The shader shadow
|
|
//-----------------------------------------------------------------------------
|
|
IShaderShadowDX8* ShaderShadow();
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Manager of all vertex + pixel shaders
|
|
//-----------------------------------------------------------------------------
|
|
inline IShaderManager *ShaderManager()
|
|
{
|
|
extern IShaderManager *g_pShaderManager;
|
|
return g_pShaderManager;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// The mesh manager
|
|
//-----------------------------------------------------------------------------
|
|
IMeshMgr* MeshMgr();
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// The main hardware config interface
|
|
//-----------------------------------------------------------------------------
|
|
inline IMaterialSystemHardwareConfig* HardwareConfig()
|
|
{
|
|
return g_pMaterialSystemHardwareConfig;
|
|
}
|
|
|
|
|
|
#endif // SHADERAPIDX8_GLOBAL_H
|