2010-07-22 01:46:14 -05:00
//===== Copyright <20> 1996-2005, Valve Corporation, All rights reserved. ======//
//
// Purpose: NOTE: This file is for backward compat!
// We'll get rid of it soon. Most of the contents of this file were moved
// into shaderpi/ishadershadow.h, shaderapi/ishaderdynamic.h, or
// shaderapi/shareddefs.h
//
// $NoKeywords: $
//
//===========================================================================//
# ifndef SHADERAPI_SHAREDDEFS_H
# define SHADERAPI_SHAREDDEFS_H
# ifdef _WIN32
# pragma once
# endif
2012-08-19 02:08:41 -05:00
# include "mathlib/vector.h"
# include "mathlib/vector4d.h"
# include "mathlib/vmatrix.h"
2010-07-22 01:46:14 -05:00
//-----------------------------------------------------------------------------
// Important enumerations
//-----------------------------------------------------------------------------
enum ShaderShadeMode_t
{
SHADER_FLAT = 0 ,
SHADER_SMOOTH
} ;
enum ShaderTexCoordComponent_t
{
SHADER_TEXCOORD_S = 0 ,
SHADER_TEXCOORD_T ,
SHADER_TEXCOORD_U
} ;
enum ShaderTexFilterMode_t
{
SHADER_TEXFILTERMODE_NEAREST ,
SHADER_TEXFILTERMODE_LINEAR ,
SHADER_TEXFILTERMODE_NEAREST_MIPMAP_NEAREST ,
SHADER_TEXFILTERMODE_LINEAR_MIPMAP_NEAREST ,
SHADER_TEXFILTERMODE_NEAREST_MIPMAP_LINEAR ,
SHADER_TEXFILTERMODE_LINEAR_MIPMAP_LINEAR ,
SHADER_TEXFILTERMODE_ANISOTROPIC
} ;
enum ShaderTexWrapMode_t
{
SHADER_TEXWRAPMODE_CLAMP ,
SHADER_TEXWRAPMODE_REPEAT ,
SHADER_TEXWRAPMODE_BORDER
// MIRROR? - probably don't need it.
} ;
2012-08-19 02:08:41 -05:00
enum TextureBindFlags_t
{
TEXTURE_BINDFLAGS_SRGBREAD = 0x80000000 ,
TEXTURE_BINDFLAGS_SHADOWDEPTH = 0x40000000 ,
TEXTURE_BINDFLAGS_NONE = 0
} ;
struct AspectRatioInfo_t
{
bool m_bIsWidescreen ;
bool m_bIsHidef ;
float m_flFrameBufferAspectRatio ;
float m_flPhysicalAspectRatio ;
float m_flFrameBuffertoPhysicalScalar ;
float m_flPhysicalToFrameBufferScalar ;
bool m_bInitialized ;
} ;
struct CascadedShadowMappingState_t
{
uint m_nNumCascades ;
bool m_bIsRenderingViewModels ;
Vector m_vLightColor ;
float m_flPadding0 ;
Vector m_vLightDir ;
float m_flPadding1 ;
struct {
float m_flInvShadowTextureWidth ;
float m_flInvShadowTextureHeight ;
float m_flHalfInvShadowTextureWidth ;
float m_flHalfInvShadowTextureHeight ;
} m_TexParams ;
struct {
float m_flShadowTextureWidth ;
float m_flShadowTextureHeight ;
float m_flSplitLerpFactorBase ;
float m_flSplitLerpFactorInvRange ;
} m_TexParams2 ;
struct {
float m_flDistLerpFactorBase ;
float m_flDistLerpFactorInvRange ;
float m_flUnused0 ;
float m_flUnused1 ;
} m_TexParams3 ;
VMatrix m_matWorldToShadowTexMatrices [ 4 ] ;
Vector4D m_vCascadeAtlasUVOffsets [ 4 ] ;
Vector4D m_vCamPosition ;
} ;
2010-07-22 01:46:14 -05:00
//-----------------------------------------------------------------------------
// Sampler identifiers
// Samplers are used to enable and bind textures + by programmable shading algorithms
//-----------------------------------------------------------------------------
enum Sampler_t
{
SHADER_SAMPLER0 = 0 ,
SHADER_SAMPLER1 ,
SHADER_SAMPLER2 ,
SHADER_SAMPLER3 ,
SHADER_SAMPLER4 ,
SHADER_SAMPLER5 ,
SHADER_SAMPLER6 ,
SHADER_SAMPLER7 ,
SHADER_SAMPLER8 ,
SHADER_SAMPLER9 ,
SHADER_SAMPLER10 ,
SHADER_SAMPLER11 ,
SHADER_SAMPLER12 ,
SHADER_SAMPLER13 ,
SHADER_SAMPLER14 ,
SHADER_SAMPLER15 ,
SHADER_SAMPLER_COUNT ,
} ;
//-----------------------------------------------------------------------------
// Vertex texture sampler identifiers
//-----------------------------------------------------------------------------
enum VertexTextureSampler_t
{
SHADER_VERTEXTEXTURE_SAMPLER0 = 0 ,
SHADER_VERTEXTEXTURE_SAMPLER1 ,
SHADER_VERTEXTEXTURE_SAMPLER2 ,
SHADER_VERTEXTEXTURE_SAMPLER3 ,
} ;
# if defined( _X360 )
# define REVERSE_DEPTH_ON_X360 //uncomment to use D3DFMT_D24FS8 with an inverted depth viewport for better performance. Keep this in sync with the same named #define in materialsystem/stdshaders/common_fxc.h
# endif
# if defined( REVERSE_DEPTH_ON_X360 )
# define ReverseDepthOnX360() true
# else
# define ReverseDepthOnX360() false
# endif
# endif // SHADERAPI_SHAREDDEFS_H