uid issue
This commit is contained in:
112
materialsystem/shaderapidx9/shaderapi_global.h
Normal file
112
materialsystem/shaderapidx9/shaderapi_global.h
Normal file
@ -0,0 +1,112 @@
|
||||
//===== Copyright <20> 1996-2005, Valve Corporation, All rights reserved. ======//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//
|
||||
//===========================================================================//
|
||||
|
||||
#ifndef SHADERAPI_GLOBAL_H
|
||||
#define SHADERAPI_GLOBAL_H
|
||||
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include "tier0/threadtools.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Use this to fill in structures with the current board state
|
||||
//-----------------------------------------------------------------------------
|
||||
#ifdef _DEBUG
|
||||
#define DEBUG_BOARD_STATE 0
|
||||
#endif
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Forward declarations
|
||||
//-----------------------------------------------------------------------------
|
||||
class IShaderUtil;
|
||||
class CShaderDeviceBase;
|
||||
class CShaderDeviceMgrBase;
|
||||
class CShaderAPIBase;
|
||||
class IShaderShadow;
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Global interfaces
|
||||
//-----------------------------------------------------------------------------
|
||||
#ifdef _PS3
|
||||
#include "shaderutil_ps3nonvirt.h"
|
||||
#define g_pShaderUtil ShaderUtil()
|
||||
inline CPs3NonVirt_IShaderUtil * ShaderUtil()
|
||||
{
|
||||
return ( CPs3NonVirt_IShaderUtil * ) 1;
|
||||
}
|
||||
#else
|
||||
extern IShaderUtil* g_pShaderUtil;
|
||||
inline IShaderUtil* ShaderUtil()
|
||||
{
|
||||
return g_pShaderUtil;
|
||||
}
|
||||
#endif
|
||||
|
||||
extern CShaderDeviceBase *g_pShaderDevice;
|
||||
extern CShaderDeviceMgrBase *g_pShaderDeviceMgr;
|
||||
extern CShaderAPIBase *g_pShaderAPI;
|
||||
extern IShaderShadow *g_pShaderShadow;
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Memory debugging
|
||||
//-----------------------------------------------------------------------------
|
||||
#define MEM_ALLOC_D3D_CREDIT() MEM_ALLOC_CREDIT_("D3D:" __FILE__)
|
||||
#define BEGIN_D3D_ALLOCATION() MemAlloc_PushAllocDbgInfo("D3D:" __FILE__, __LINE__)
|
||||
#define END_D3D_ALLOCATION() MemAlloc_PopAllocDbgInfo()
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Threading
|
||||
//-----------------------------------------------------------------------------
|
||||
extern bool g_bUseShaderMutex;
|
||||
|
||||
//#define USE_SHADER_DISALLOW 1
|
||||
//#define STRICT_MT_SHADERAPI 1
|
||||
|
||||
#if defined(_DEBUG)
|
||||
#if !defined(STRICT_MT_SHADERAPI)
|
||||
#define UNCONDITIONAL_MT_SHADERAPI 1
|
||||
#endif
|
||||
#else
|
||||
#if !defined(STRICT_MT_SHADERAPI) && !defined(UNCONDITIONAL_MT_SHADERAPI)
|
||||
#define ST_SHADERAPI 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(ST_SHADERAPI)
|
||||
typedef CThreadNullMutex CShaderMutex;
|
||||
#elif defined(STRICT_MT_SHADERAPI)
|
||||
typedef CThreadConditionalMutex<CThreadTerminalMutex<CThreadFastMutex>, &g_bUseShaderMutex> CShaderMutex;
|
||||
#elif defined(UNCONDITIONAL_MT_SHADERAPI)
|
||||
typedef CThreadFastMutex CShaderMutex;
|
||||
#else
|
||||
typedef CThreadConditionalMutex<CThreadFastMutex, &g_bUseShaderMutex> CShaderMutex;
|
||||
#endif
|
||||
|
||||
extern CShaderMutex g_ShaderMutex;
|
||||
|
||||
extern bool g_bShaderAccessDisallowed;
|
||||
|
||||
#ifdef USE_SHADER_DISALLOW
|
||||
#define TestShaderPermission() do { if ( (!g_bUseShaderMutex || g_ShaderMutex.GetDepth() == 0) && g_bShaderAccessDisallowed ) { ExecuteOnce( DebuggerBreakIfDebugging() ); } } while (0)
|
||||
#define LOCK_SHADERAPI() TestShaderPermission(); AUTO_LOCK_( CShaderMutex, g_ShaderMutex )
|
||||
#define LockShaderMutex() TestShaderPermission(); g_ShaderMutex.Lock();
|
||||
#define UnlockShaderMutex() TestShaderPermission(); g_ShaderMutex.Unlock();
|
||||
#else
|
||||
#define TestShaderPermission() ((void)0)
|
||||
#define LOCK_SHADERAPI() ((void)0)
|
||||
#define LockShaderMutex() ((void)0)
|
||||
#define UnlockShaderMutex() ((void)0)
|
||||
#endif
|
||||
|
||||
#endif // SHADERAPI_GLOBAL_H
|
Reference in New Issue
Block a user