Merge branch 'master' into windows

This commit is contained in:
HappyDOGE
2022-07-27 12:58:56 +03:00
3089 changed files with 38639 additions and 844820 deletions
+1 -1
View File
@@ -17,7 +17,7 @@
#include "materialsystem/imaterialproxyfactory.h"
#include "IHardwareConfigInternal.h"
#include "utlsymbol.h"
#include <malloc.h>
#include <stdlib.h>
#include "filesystem.h"
#include <KeyValues.h>
#include "mempool.h"
+7 -3
View File
@@ -17,7 +17,11 @@
#include "materialsystem/imaterialproxyfactory.h"
#include "IHardwareConfigInternal.h"
#include "utlsymbol.h"
#ifdef OSX
#include <malloc/malloc.h>
#else
#include <malloc.h>
#endif
#include "filesystem.h"
#include <KeyValues.h>
#include "mempool.h"
@@ -1177,7 +1181,7 @@ bool CMaterial::ShouldSkipVar( KeyValues *pVar, bool *pWasConditional )
}
else if ( ! stricmp( pCond, "hdr" ) )
{
bShouldSkip = ( HardwareConfig()->GetHDRType() == HDR_TYPE_NONE );
bShouldSkip = false; //( HardwareConfig()->GetHDRType() == HDR_TYPE_NONE );
}
else if ( ! stricmp( pCond, "srgb" ) )
{
@@ -1400,7 +1404,7 @@ static KeyValues *FindBuiltinFallbackBlock( char const *pShaderName, KeyValues *
if ( pRet )
return pRet;
}
if ( HardwareConfig()->GetHDRType() != HDR_TYPE_NONE )
// if ( HardwareConfig()->GetHDRType() != HDR_TYPE_NONE )
{
KeyValues *pRet = CheckConditionalFakeShaderName( pShaderName,"hdr_dx9", pKeyValues );
if ( pRet )
@@ -1409,7 +1413,7 @@ static KeyValues *FindBuiltinFallbackBlock( char const *pShaderName, KeyValues *
if ( pRet )
return pRet;
}
else
if( HardwareConfig()->GetHDRType() == HDR_TYPE_NONE )
{
KeyValues *pRet = CheckConditionalFakeShaderName( pShaderName,"ldr", pKeyValues );
if ( pRet )
+2
View File
@@ -18,6 +18,8 @@
class CMaterial_QueueFriendly : public IMaterialInternal //wraps a CMaterial with queue friendly functions for game/engine code. materialsystem/shaderapi code should use CMaterial directly.
{
public:
CMaterial_QueueFriendly() : m_pRealTimeVersion(NULL) {}
virtual const char * GetName() const;
virtual const char * GetTextureGroupName() const;
virtual PreviewImageRetVal_t GetPreviewImageProperties( int *width, int *height, ImageFormat *imageFormat, bool* isTranslucent ) const;
+7 -4
View File
@@ -517,7 +517,7 @@ void CMaterialSystem::CleanUpErrorMaterial()
//-----------------------------------------------------------------------------
CMaterialSystem::CMaterialSystem()
{
m_nRenderThreadID = 0xFFFFFFFF;
m_nRenderThreadID = (uintp)-1;
m_hAsyncLoadFileCache = NULL;
m_ShaderHInst = 0;
m_pMaterialProxyFactory = NULL;
@@ -2785,8 +2785,8 @@ IMaterial* CMaterialSystem::FindMaterialEx( char const* pMaterialName, const cha
{
// We need lower-case symbols for this to work
int nLen = Q_strlen( pMaterialName ) + 1;
char *pFixedNameTemp = (char*)stackalloc( nLen );
char *pTemp = (char*)stackalloc( nLen );
char *pFixedNameTemp = (char*)malloc( nLen );
char *pTemp = (char*)malloc( nLen );
Q_strncpy( pFixedNameTemp, pMaterialName, nLen );
Q_strlower( pFixedNameTemp );
#ifdef POSIX
@@ -2888,6 +2888,9 @@ IMaterial* CMaterialSystem::FindMaterialEx( char const* pMaterialName, const cha
}
}
free(pTemp);
free(pFixedNameTemp);
return g_pErrorMaterial->GetRealTimeVersion();
}
@@ -3547,7 +3550,7 @@ void CMaterialSystem::ThreadExecuteQueuedContext( CMatQueuedRenderContext *pCont
m_pRenderContext.Set( &m_HardwareRenderContext );
pContext->EndQueue( true );
m_pRenderContext.Set( pSavedRenderContext );
m_nRenderThreadID = 0xFFFFFFFF;
m_nRenderThreadID = (uintp)-1;
}
IThreadPool *CMaterialSystem::CreateMatQueueThreadPool()
+3 -3
View File
@@ -572,7 +572,7 @@ public:
MaterialLock_t Lock();
void Unlock( MaterialLock_t );
CMatCallQueue * GetRenderCallQueue();
uint GetRenderThreadId() const { return m_nRenderThreadID; }
ThreadId_t GetRenderThreadId() const { return m_nRenderThreadID; }
void UnbindMaterial( IMaterial *pMaterial );
IMaterialProxy *DetermineProxyReplacements( IMaterial *pMaterial, KeyValues *pFallbackKeyValues );
@@ -617,7 +617,7 @@ private:
CMaterialDict m_MaterialDict;
CMatLightmaps m_Lightmaps;
CThreadLocal<IMatRenderContextInternal *> m_pRenderContext;
CTHREADLOCAL(IMatRenderContextInternal *) m_pRenderContext;
CMatRenderContext m_HardwareRenderContext;
CMatQueuedRenderContext m_QueuedRenderContexts[2];
@@ -698,7 +698,7 @@ private:
const char * m_pForcedTextureLoadPathID;
FileCacheHandle_t m_hAsyncLoadFileCache;
uint m_nRenderThreadID;
ThreadId_t m_nRenderThreadID;
bool m_bAllocatingRenderTargets;
bool m_bInStubMode;
bool m_bGeneratedConfig;
+1 -1
View File
@@ -26,7 +26,7 @@ class CMaterialDict;
class IMaterial;
class IMaterialInternal;
class FloatBitMap_t;
typedef int ShaderAPITextureHandle_t;
typedef intp ShaderAPITextureHandle_t;
struct MaterialSystem_SortInfo_t;
typedef unsigned short MaterialHandle_t;
+1 -1
View File
@@ -338,7 +338,7 @@ public:
Assert( m_VertexSize );
Assert( !m_pVertexData );
m_pVertexData = (byte *)m_pOwner->AllocVertices( numVerts, m_VertexSize );
Assert( (unsigned)m_pVertexData % 16 == 0 );
Assert( (uintp)m_pVertexData % 16 == 0 );
// Compute the vertex index..
desc.m_nFirstVertex = 0;
+1 -1
View File
@@ -2200,7 +2200,7 @@ int CMatRenderContext::CompareMaterialCombos( IMaterial *pMaterial1, IMaterial *
if ( dLightmap )
return dLightmap;
return (int)pMat1 - (int)pMat2;
return (intp)pMat1 - (intp)pMat2;
}
+1 -1
View File
@@ -34,7 +34,7 @@
class ITextureInternal;
class CMaterialSystem;
class CMatLightmaps;
typedef int ShaderAPITextureHandle_t;
typedef intp ShaderAPITextureHandle_t;
class IMorphMgrRenderContext;
class CMatCallQueue;
+4 -5
View File
@@ -32,7 +32,6 @@
#endif
#include "colorspace.h"
#include "string.h"
#include <malloc.h>
#include <stdlib.h>
#include "utlmemory.h"
#include "IHardwareConfigInternal.h"
@@ -2577,7 +2576,7 @@ bool CTexture::SetRenderTarget( int nRenderTargetID, ITexture *pDepthTexture )
ShaderAPITextureHandle_t textureHandle = m_pTextureHandles[0];
ShaderAPITextureHandle_t depthTextureHandle = (unsigned int)SHADER_RENDERTARGET_DEPTHBUFFER;
ShaderAPITextureHandle_t depthTextureHandle = (uintp)SHADER_RENDERTARGET_DEPTHBUFFER;
if ( m_nFlags & TEXTUREFLAGS_DEPTHRENDERTARGET )
{
@@ -2587,7 +2586,7 @@ bool CTexture::SetRenderTarget( int nRenderTargetID, ITexture *pDepthTexture )
else if ( m_nFlags & TEXTUREFLAGS_NODEPTHBUFFER )
{
// GR - render target without depth buffer
depthTextureHandle = (unsigned int)SHADER_RENDERTARGET_NONE;
depthTextureHandle = (uintp)SHADER_RENDERTARGET_NONE;
}
if ( pDepthTexture)
@@ -4040,7 +4039,7 @@ void CTexture::DeleteIfUnreferenced()
if ( ThreadInMainThread() )
{
// Render thread better not be active or bad things can happen.
Assert( MaterialSystem()->GetRenderThreadId() == 0xFFFFFFFF );
Assert( MaterialSystem()->GetRenderThreadId() == (uintp)-1 );
TextureManager()->RemoveTexture( this );
return;
}
@@ -4140,7 +4139,7 @@ bool CTexture::UpdateExcludedState( void )
void CTextureStreamingJob::OnAsyncFindComplete( ITexture* pTex, void* pExtraArgs )
{
const int cArgsAsInt = ( int ) pExtraArgs;
const intp cArgsAsInt = ( intp ) pExtraArgs;
Assert( m_pOwner == NULL || m_pOwner == pTex );
if ( m_pOwner )
+2 -2
View File
@@ -453,7 +453,7 @@ public:
virtual void OnAsyncFindComplete( ITexture* pTex, void* pExtraArgs )
{
switch ( ( int ) pExtraArgs )
switch ( ( intp ) pExtraArgs )
{
case Neutral:
SafeAssign( &m_pTex, pTex );
@@ -1202,7 +1202,7 @@ protected:
virtual void OnAsyncFindComplete( ITexture* pTex, void* pExtraArgs )
{
switch ( ( int ) pExtraArgs )
switch ( ( intp ) pExtraArgs )
{
case Albedo:
SafeAssign( &m_pTex, pTex );
+1 -1
View File
@@ -215,7 +215,7 @@ public:
virtual CMatCallQueue *GetRenderCallQueue() = 0;
virtual void UnbindMaterial( IMaterial *pMaterial ) = 0;
virtual uint GetRenderThreadId() const = 0 ;
virtual ThreadId_t GetRenderThreadId() const = 0 ;
virtual IMaterialProxy *DetermineProxyReplacements( IMaterial *pMaterial, KeyValues *pFallbackKeyValues ) = 0;
};
-1
View File
@@ -7,7 +7,6 @@
#include "materialsystem_global.h"
#include "shaderapi/ishaderapi.h"
#include "shadersystem.h"
#include <malloc.h>
#include "filesystem.h"
// memdbgon must be the last include file in a .cpp file!!!
+9 -9
View File
@@ -38,7 +38,7 @@ COcclusionQueryMgr::COcclusionQueryMgr()
OcclusionQueryObjectHandle_t COcclusionQueryMgr::CreateOcclusionQueryObject( )
{
m_Mutex.Lock();
int h = m_OcclusionQueryObjects.AddToTail();
intp h = m_OcclusionQueryObjects.AddToTail();
m_Mutex.Unlock();
return (OcclusionQueryObjectHandle_t)h;
}
@@ -47,7 +47,7 @@ void COcclusionQueryMgr::OnCreateOcclusionQueryObject( OcclusionQueryObjectHandl
{
for ( int i = 0; i < COUNT_OCCLUSION_QUERY_STACK; i++)
{
m_OcclusionQueryObjects[(int)h].m_QueryHandle[i] = g_pShaderAPI->CreateOcclusionQueryObject( );
m_OcclusionQueryObjects[(intp)h].m_QueryHandle[i] = g_pShaderAPI->CreateOcclusionQueryObject( );
}
}
@@ -56,7 +56,7 @@ void COcclusionQueryMgr::OnCreateOcclusionQueryObject( OcclusionQueryObjectHandl
void COcclusionQueryMgr::FlushQuery( OcclusionQueryObjectHandle_t hOcclusionQuery, int nIndex )
{
// Flush out any previous queries
int h = (int)hOcclusionQuery;
intp h = (intp)hOcclusionQuery;
if ( m_OcclusionQueryObjects[h].m_bHasBeenIssued[nIndex] )
{
ShaderAPIOcclusionQuery_t hQuery = m_OcclusionQueryObjects[h].m_QueryHandle[nIndex];
@@ -68,7 +68,7 @@ void COcclusionQueryMgr::FlushQuery( OcclusionQueryObjectHandle_t hOcclusionQuer
void COcclusionQueryMgr::DestroyOcclusionQueryObject( OcclusionQueryObjectHandle_t hOcclusionQuery )
{
int h = (int)hOcclusionQuery;
intp h = (intp)hOcclusionQuery;
Assert( m_OcclusionQueryObjects.IsValidIndex( h ) );
if ( m_OcclusionQueryObjects.IsValidIndex( h ) )
{
@@ -133,7 +133,7 @@ void COcclusionQueryMgr::FreeOcclusionQueryObjects( void )
//-----------------------------------------------------------------------------
void COcclusionQueryMgr::ResetOcclusionQueryObject( OcclusionQueryObjectHandle_t hOcclusionQuery )
{
int h = (int)hOcclusionQuery;
intp h = (intp)hOcclusionQuery;
Assert( m_OcclusionQueryObjects.IsValidIndex( h ) );
if ( m_OcclusionQueryObjects.IsValidIndex( h ) )
{
@@ -154,7 +154,7 @@ void COcclusionQueryMgr::ResetOcclusionQueryObject( OcclusionQueryObjectHandle_t
//-----------------------------------------------------------------------------
void COcclusionQueryMgr::BeginOcclusionQueryDrawing( OcclusionQueryObjectHandle_t hOcclusionQuery )
{
int h = (int)hOcclusionQuery;
intp h = (intp)hOcclusionQuery;
Assert( m_OcclusionQueryObjects.IsValidIndex( h ) );
if ( m_OcclusionQueryObjects.IsValidIndex( h ) )
{
@@ -194,7 +194,7 @@ void COcclusionQueryMgr::BeginOcclusionQueryDrawing( OcclusionQueryObjectHandle_
void COcclusionQueryMgr::EndOcclusionQueryDrawing( OcclusionQueryObjectHandle_t hOcclusionQuery )
{
int h = (int)hOcclusionQuery;
intp h = (intp)hOcclusionQuery;
Assert( m_OcclusionQueryObjects.IsValidIndex( h ) );
if ( m_OcclusionQueryObjects.IsValidIndex( h ) )
{
@@ -220,7 +220,7 @@ void COcclusionQueryMgr::EndOcclusionQueryDrawing( OcclusionQueryObjectHandle_t
//-----------------------------------------------------------------------------
void COcclusionQueryMgr::OcclusionQuery_IssueNumPixelsRenderedQuery( OcclusionQueryObjectHandle_t hOcclusionQuery )
{
int h = (int)hOcclusionQuery;
intp h = (intp)hOcclusionQuery;
Assert( m_OcclusionQueryObjects.IsValidIndex( h ) );
if ( m_OcclusionQueryObjects.IsValidIndex( h ) )
{
@@ -253,6 +253,6 @@ int COcclusionQueryMgr::OcclusionQuery_GetNumPixelsRendered( OcclusionQueryObjec
OcclusionQuery_IssueNumPixelsRenderedQuery( h );
}
int nPixels = m_OcclusionQueryObjects[(int)h].m_LastResult;
int nPixels = m_OcclusionQueryObjects[(intp)h].m_LastResult;
return nPixels;
}
+4
View File
@@ -16,7 +16,11 @@
#include "windows.h"
#endif
#ifdef OSX
#include <malloc/malloc.h>
#else
#include <malloc.h>
#endif
#include <string.h>
#include "crtmemdebug.h"
@@ -237,7 +237,7 @@ EXPOSE_SINGLE_INTERFACE_GLOBALVAR( CVBAllocTracker, IVBAllocTracker,
UtlHashFixedHandle_t CVBAllocTracker::TrackAlloc( void * buffer, int bufferSize, VertexFormat_t fmt, int numVerts, short allocatorHash )
{
AllocData newData( buffer, bufferSize, fmt, numVerts, allocatorHash );
UtlHashFixedHandle_t handle = m_VBAllocTable.Insert( (int)buffer, newData );
UtlHashFixedHandle_t handle = m_VBAllocTable.Insert( (intp)buffer, newData );
if ( handle == m_VBAllocTable.InvalidHandle() )
{
Warning( "[VBMEM] VBMemAllocTable hash collision (grow table).\n" );
@@ -247,7 +247,7 @@ UtlHashFixedHandle_t CVBAllocTracker::TrackAlloc( void * buffer, int bufferSize,
bool CVBAllocTracker::KillAlloc( void * buffer, int & bufferSize, VertexFormat_t & fmt, int & numVerts, short & allocatorHash )
{
UtlHashFixedHandle_t handle = m_VBAllocTable.Find( (int)buffer );
UtlHashFixedHandle_t handle = m_VBAllocTable.Find( (intp)buffer );
if ( handle != m_VBAllocTable.InvalidHandle() )
{
AllocData & data = m_VBAllocTable.Element( handle );
@@ -24,6 +24,8 @@
static CHardwareConfig s_HardwareConfig;
CHardwareConfig *g_pHardwareConfig = &s_HardwareConfig;
extern ConVar mat_hdr_level;
EXPOSE_SINGLE_INTERFACE_GLOBALVAR( CHardwareConfig, IMaterialSystemHardwareConfig,
MATERIALSYSTEM_HARDWARECONFIG_INTERFACE_VERSION, s_HardwareConfig )
@@ -1238,12 +1240,12 @@ int CHardwareConfig::GetMaxVertexTextureDimension() const
HDRType_t CHardwareConfig::GetHDRType() const
{
bool enabled = m_bHDREnabled;
bool enabled = (mat_hdr_level.GetInt() >= 2) && GetHDREnabled();
int dxlev = GetDXSupportLevel();
int dxsupp = dxlev >= 90;
HDRType_t caps_hdr = m_Caps.m_HDRType;
HDRType_t result = HDR_TYPE_NONE;
//printf("\nCHardwareConfig::GetHDRType...");
if (enabled)
{
+5 -3
View File
@@ -12,6 +12,8 @@
#pragma once
#endif
#include "tier0/platform.h"
#if defined( DX10 ) && !defined( DX_TO_GL_ABSTRACTION )
#include <d3d10.h>
@@ -113,13 +115,13 @@ typedef void *HardwareShader_t;
//-----------------------------------------------------------------------------
// The vertex and pixel shader type
//-----------------------------------------------------------------------------
typedef int VertexShader_t;
typedef int PixelShader_t;
typedef intp VertexShader_t;
typedef intp PixelShader_t;
//-----------------------------------------------------------------------------
// Bitpattern for an invalid shader
//-----------------------------------------------------------------------------
#define INVALID_SHADER ( 0xFFFFFFFF )
#define INVALID_SHADER (-1) // ( 0xFFFFFFFF )
#define INVALID_HARDWARE_SHADER ( NULL )
#define D3DSAMP_NOTSUPPORTED D3DSAMP_FORCE_DWORD
+31 -33
View File
@@ -42,7 +42,6 @@ mat_fullbright 1 doesn't work properly on alpha materials in testroom_standards
#include "colorformatdx8.h"
#include "texturedx8.h"
#include "textureheap.h"
#include <malloc.h>
#include "interface.h"
#include "utlrbtree.h"
#include "utlsymbol.h"
@@ -3499,7 +3498,8 @@ void CShaderAPIDx8::ResetRenderState( bool bFullReset )
SetRenderState( D3DRS_CULLMODE, D3DCULL_CCW );
// No shade mode yet
m_DynamicState.m_ShadeMode = (D3DSHADEMODE)NULL;
const D3DSHADEMODE D3DSHADE_NONE = (D3DSHADEMODE)0;
m_DynamicState.m_ShadeMode = D3DSHADE_NONE;
ShadeMode( SHADER_SMOOTH );
m_DynamicState.m_bHWMorphingEnabled = false;
@@ -6301,27 +6301,16 @@ int CShaderAPIDx8::GetCurrentDynamicVBSize( void )
FORCEINLINE void CShaderAPIDx8::SetVertexShaderConstantInternal( int var, float const* pVec, int numVecs, bool bForce )
{
Assert( numVecs > 0 );
Assert( pVec );
// DX8 asm shaders use a constant mapping which has transforms and vertex shader
// specific constants shifted down by 10 constants (two 5-constant light structures)
if ( IsPC() )
if ( IsPC() || IsPS3() )
{
if ( (g_pHardwareConfig->Caps().m_nDXSupportLevel < 90) && (var >= VERTEX_SHADER_MODULATION_COLOR) )
{
var -= 10;
}
Assert( var + numVecs <= g_pHardwareConfig->NumVertexShaderConstants() );
if ( !bForce )
{
int skip = 0;
numVecs = AdjustUpdateRange( pVec, &m_DesiredState.m_pVectorVertexShaderConstant[var], numVecs, &skip );
if ( !numVecs )
return;
var += skip;
pVec += skip * 4;
}
if ( !bForce && memcmp( pVec, &m_DynamicState.m_pVectorVertexShaderConstant[var], numVecs * 4 * sizeof( float ) ) == 0 )
return;
Dx9Device()->SetVertexShaderConstantF( var, pVec, numVecs );
memcpy( &m_DynamicState.m_pVectorVertexShaderConstant[var], pVec, numVecs * 4 * sizeof(float) );
}
@@ -6330,12 +6319,10 @@ FORCEINLINE void CShaderAPIDx8::SetVertexShaderConstantInternal( int var, float
Assert( var + numVecs <= g_pHardwareConfig->NumVertexShaderConstants() );
}
memcpy( &m_DesiredState.m_pVectorVertexShaderConstant[var], pVec, numVecs * 4 * sizeof(float) );
if ( IsX360() && var + numVecs > m_MaxVectorVertexShaderConstant )
m_MaxVectorVertexShaderConstant = var + numVecs;
if ( IsX360() )
{
m_MaxVectorVertexShaderConstant = max( m_MaxVectorVertexShaderConstant, var + numVecs );
}
memcpy( &m_DesiredState.m_pVectorVertexShaderConstant[var], pVec, numVecs * 4 * sizeof(float) );
}
@@ -6417,29 +6404,40 @@ FORCEINLINE void CShaderAPIDx8::SetPixelShaderConstantInternal( int nStartConst,
{
Assert( nStartConst + nNumConsts <= g_pHardwareConfig->NumPixelShaderConstants() );
if ( IsPC() )
if ( IsPC() || IsPS3() )
{
if ( ! bForce )
if ( !bForce )
{
int skip = 0;
nNumConsts = AdjustUpdateRange( pValues, &m_DesiredState.m_pVectorPixelShaderConstant[nStartConst], nNumConsts, &skip );
DWORD* pSrc = (DWORD*)pValues;
DWORD* pDst = (DWORD*)&m_DesiredState.m_pVectorPixelShaderConstant[nStartConst];
while( nNumConsts && ( pSrc[0] == pDst[0] ) && ( pSrc[1] == pDst[1] ) && ( pSrc[2] == pDst[2] ) && ( pSrc[3] == pDst[3] ) )
{
pSrc += 4;
pDst += 4;
nNumConsts--;
nStartConst++;
}
if ( !nNumConsts )
return;
nStartConst += skip;
pValues += skip * 4;
pValues = reinterpret_cast< float const * >( pSrc );
}
Dx9Device()->SetPixelShaderConstantF( nStartConst, pValues, nNumConsts );
memcpy( &m_DynamicState.m_pVectorPixelShaderConstant[nStartConst], pValues, nNumConsts * 4 * sizeof(float) );
}
memcpy( &m_DesiredState.m_pVectorPixelShaderConstant[nStartConst], pValues, nNumConsts * 4 * sizeof(float) );
if ( IsX360() )
if ( IsX360() && nStartConst + nNumConsts > m_MaxVectorPixelShaderConstant )
{
m_MaxVectorPixelShaderConstant = max( m_MaxVectorPixelShaderConstant, nStartConst + nNumConsts );
m_MaxVectorPixelShaderConstant = nStartConst + nNumConsts;
Assert( m_MaxVectorPixelShaderConstant <= 32 );
if ( m_MaxVectorPixelShaderConstant > 32 )
{
// NOTE! There really are 224 pixel shader constants on the 360, but we do an optimization that only blasts the first 32 always.
Error( "Don't use more then the first 32 pixel shader constants on the 360!" );
}
}
memcpy( &m_DesiredState.m_pVectorPixelShaderConstant[nStartConst], pValues, nNumConsts * 4 * sizeof(float) );
}
void CShaderAPIDx8::SetPixelShaderConstant( int var, float const* pVec, int numVecs, bool bForce )
@@ -184,7 +184,7 @@ protected:
int m_nWindowWidth;
int m_nWindowHeight;
uint32 m_dwThreadId;
uintp m_dwThreadId;
};
@@ -562,7 +562,7 @@ void CShaderDeviceMgrDx8::CheckVendorDependentAlphaToCoverage( HardwareCaps_t *p
ConVar mat_hdr_level( "mat_hdr_level", "2", FCVAR_ARCHIVE );
ConVar mat_slopescaledepthbias_shadowmap( "mat_slopescaledepthbias_shadowmap", "16", FCVAR_CHEAT );
#ifdef DX_TO_GL_ABSTRACTION
ConVar mat_depthbias_shadowmap( "mat_depthbias_shadowmap", "20", FCVAR_CHEAT | FCVAR_DEVELOPMENTONLY );
ConVar mat_depthbias_shadowmap( "mat_depthbias_shadowmap", "40", FCVAR_CHEAT );
#else
ConVar mat_depthbias_shadowmap( "mat_depthbias_shadowmap", "0.0005", FCVAR_CHEAT );
#endif
@@ -1047,6 +1047,11 @@ bool CShaderDeviceMgrDx8::ComputeCapsFromD3D( HardwareCaps_t *pCaps, int nAdapte
}
}
#ifdef TOGLES
bSupportsInteger16Textures = caps.SupportInt16Format;
#endif
// Do we have everything necessary to run with integer HDR? Note that
// even if we don't support integer 16-bit/component textures, we
// can still run in this mode if fp16 textures are supported.
@@ -1054,7 +1059,7 @@ bool CShaderDeviceMgrDx8::ComputeCapsFromD3D( HardwareCaps_t *pCaps, int nAdapte
pCaps->m_SupportsVertexShaders_2_0 &&
// (caps.Caps3 & D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD) &&
// (caps.PrimitiveMiscCaps & D3DPMISCCAPS_SEPARATEALPHABLEND) &&
( bSupportsInteger16Textures || bSupportsFloat16Textures ) &&
bSupportsInteger16Textures &&
pCaps->m_SupportsSRGB;
// Do we have everything necessary to run with float HDR?
@@ -1072,7 +1077,7 @@ bool CShaderDeviceMgrDx8::ComputeCapsFromD3D( HardwareCaps_t *pCaps, int nAdapte
else
if ( bSupportsIntegerHDR )
pCaps->m_MaxHDRType = HDR_TYPE_INTEGER;
if ( bSupportsFloatHDR && ( mat_hdr_level.GetInt() == 3 ) )
{
pCaps->m_HDRType = HDR_TYPE_FLOAT;
+14 -14
View File
@@ -163,15 +163,10 @@ static FILE *GetDebugFileHandle( void )
// mat_autosave_glshaders instructs the engine to save out the shader table at key points
// to the filename glshaders.cfg
//
#ifdef ANDROID
ConVar mat_autosave_glshaders( "mat_autosave_glshaders", "0" );
ConVar mat_autoload_glshaders( "mat_autoload_glshaders", "0" );
#else
ConVar mat_autosave_glshaders( "mat_autosave_glshaders", "1" );
ConVar mat_autoload_glshaders( "mat_autoload_glshaders", "1" );
#endif
#endif
//-----------------------------------------------------------------------------
// Explicit instantiation of shader buffer implementation
//-----------------------------------------------------------------------------
@@ -620,7 +615,7 @@ private:
ShaderStaticCombos_t m_ShaderStaticCombos;
DWORD m_Flags;
int m_nRefCount;
unsigned int m_hShaderFileCache;
uintp m_hShaderFileCache;
// for queued loading, bias an aligned optimal buffer forward to correct location
int m_nDataOffset;
@@ -943,7 +938,8 @@ void CShaderManager::Shutdown()
}
#endif
#ifdef DX_TO_GL_ABSTRACTION
#if defined (DX_TO_GL_ABSTRACTION) && !defined (ANDROID)
if (mat_autosave_glshaders.GetInt())
{
SaveShaderCache("glshaders.cfg");
@@ -1021,7 +1017,7 @@ void CShaderManager::DestroyVertexShader( VertexShaderHandle_t hShader )
if ( hShader == VERTEX_SHADER_HANDLE_INVALID )
return;
VertexShaderIndex_t i = (VertexShaderIndex_t)hShader;
VertexShaderIndex_t i = (VertexShaderIndex_t)(uintp)hShader;
IDirect3DVertexShader9 *pVertexShader = m_RawVertexShaderDict[ i ];
UnregisterVS( pVertexShader );
@@ -1057,7 +1053,7 @@ void CShaderManager::DestroyPixelShader( PixelShaderHandle_t hShader )
if ( hShader == PIXEL_SHADER_HANDLE_INVALID )
return;
PixelShaderIndex_t i = (PixelShaderIndex_t)hShader;
PixelShaderIndex_t i = (PixelShaderIndex_t)(uintp)hShader;
IDirect3DPixelShader9 *pPixelShader = m_RawPixelShaderDict[ i ];
UnregisterPS( pPixelShader );
@@ -2526,7 +2522,7 @@ bool CShaderManager::LoadAndCreateShaders( ShaderLookup_t &lookup, bool bVertexS
ShaderFileCache_t fileCacheLookup;
fileCacheLookup.m_Name = lookup.m_Name;
fileCacheLookup.m_bVertexShader = bVertexShader;
int fileCacheIndex = m_ShaderFileCache.Find( fileCacheLookup );
intp fileCacheIndex = m_ShaderFileCache.Find( fileCacheLookup );
if ( fileCacheIndex == m_ShaderFileCache.InvalidIndex() )
{
// not found, create a new entry
@@ -3290,7 +3286,7 @@ void CShaderManager::SetVertexShaderState( HardwareShader_t shader, DataCacheHan
void CShaderManager::BindVertexShader( VertexShaderHandle_t hVertexShader )
{
HardwareShader_t hHardwareShader = m_RawVertexShaderDict[ (VertexShaderIndex_t)hVertexShader] ;
HardwareShader_t hHardwareShader = m_RawVertexShaderDict[ (VertexShaderIndex_t)(uintp)hVertexShader] ;
SetVertexShaderState( hHardwareShader );
}
@@ -3399,7 +3395,7 @@ void CShaderManager::SetPixelShaderState( HardwareShader_t shader, DataCacheHand
void CShaderManager::BindPixelShader( PixelShaderHandle_t hPixelShader )
{
HardwareShader_t hHardwareShader = m_RawPixelShaderDict[ (PixelShaderIndex_t)hPixelShader ];
HardwareShader_t hHardwareShader = m_RawPixelShaderDict[ (PixelShaderIndex_t)(uintp)hPixelShader ];
SetPixelShaderState( hHardwareShader );
}
@@ -3598,7 +3594,7 @@ void CShaderManager::SpewVertexAndPixelShaders( void )
{
// only spew a populated shader file cache
Msg( "\nShader File Cache:\n" );
for ( int cacheIndex = m_ShaderFileCache.Head();
for ( intp cacheIndex = m_ShaderFileCache.Head();
cacheIndex != m_ShaderFileCache.InvalidIndex();
cacheIndex = m_ShaderFileCache.Next( cacheIndex ) )
{
@@ -3757,6 +3753,10 @@ CON_COMMAND( mat_shadercount, "display count of all shaders and reset that count
#if defined( DX_TO_GL_ABSTRACTION )
void CShaderManager::DoStartupShaderPreloading()
{
#ifdef ANDROID // Too slow
return;
#endif
if (mat_autoload_glshaders.GetInt())
{
double flStartTime = Plat_FloatTime();
+1 -1
View File
@@ -14,7 +14,7 @@
#include <comdef.h>
#pragma warning( disable : 4127 ) // VS 2010 warning?
#pragma warning( disable : 4805 ) // VS 2013 warning: warning C4805: '==' : unsafe mix of type 'INT' and type 'bool' in operation
#include <atlcomtime.h>
// #include <atlcomtime.h>
#pragma warning( default : 4805 )
#pragma warning( default : 4127 )
#include <wbemidl.h>
@@ -180,8 +180,7 @@ BEGIN_VS_SHADER( DecalModulate_dx9,
{
DECLARE_DYNAMIC_VERTEX_SHADER( vertexlit_and_unlit_generic_vs20 );
SET_DYNAMIC_VERTEX_SHADER_COMBO( DYNAMIC_LIGHT, 0 ); // Use simplest possible vertex lighting, since ps is so simple
SET_DYNAMIC_VERTEX_SHADER_COMBO( STATIC_LIGHT_VERTEX, 0 ); //
SET_DYNAMIC_VERTEX_SHADER_COMBO( STATIC_LIGHT_LIGHTMAP, 0); //
SET_DYNAMIC_VERTEX_SHADER_COMBO( STATIC_LIGHT, 0); //
SET_DYNAMIC_VERTEX_SHADER_COMBO( DOWATERFOG, fogIndex );
SET_DYNAMIC_VERTEX_SHADER_COMBO( SKINNING, 0 );
SET_DYNAMIC_VERTEX_SHADER_COMBO( LIGHTING_PREVIEW, 0 );
@@ -209,8 +208,7 @@ BEGIN_VS_SHADER( DecalModulate_dx9,
DECLARE_DYNAMIC_VERTEX_SHADER( vertexlit_and_unlit_generic_vs30 );
SET_DYNAMIC_VERTEX_SHADER_COMBO( DYNAMIC_LIGHT, 0 ); // Use simplest possible vertex lighting, since ps is so simple
SET_DYNAMIC_VERTEX_SHADER_COMBO( STATIC_LIGHT_VERTEX, 0 ); //
SET_DYNAMIC_VERTEX_SHADER_COMBO( STATIC_LIGHT_LIGHTMAP, 0); //
SET_DYNAMIC_VERTEX_SHADER_COMBO( STATIC_LIGHT, 0); //
SET_DYNAMIC_VERTEX_SHADER_COMBO( DOWATERFOG, fogIndex );
SET_DYNAMIC_VERTEX_SHADER_COMBO( SKINNING, pShaderAPI->GetCurrentNumBones() > 0 );
SET_DYNAMIC_VERTEX_SHADER_COMBO( LIGHTING_PREVIEW, 0 );
+7 -2
View File
@@ -49,7 +49,7 @@ public:
template<class T> FORCEINLINE void Put( T const &nValue )
{
EnsureCapacity( sizeof( T ) );
*( reinterpret_cast<T *>( m_pDataOut ) ) = nValue;
memcpy( m_pDataOut, &nValue, sizeof(T) );
m_pDataOut += sizeof( nValue );
#ifdef DBGFLAG_ASSERT
m_nNumBytesRemaining -= sizeof( nValue );
@@ -61,6 +61,11 @@ public:
Put( nValue );
}
FORCEINLINE void PutIntPtr( intp nValue )
{
Put( nValue );
}
FORCEINLINE void PutFloat( float nValue )
{
Put( nValue );
@@ -335,7 +340,7 @@ public:
{
m_Storage.PutInt( CBCMD_BIND_SHADERAPI_TEXTURE_HANDLE );
m_Storage.PutInt( nSampler );
m_Storage.PutInt( hTexture );
m_Storage.PutIntPtr( hTexture );
}
}
+1 -1
View File
@@ -198,7 +198,7 @@ BEGIN_VS_SHADER_FLAGS( DepthWrite, "Help for Depth Write", SHADER_NOT_EDITABLE )
vParms.y = 4000.0f; // arbitrary far
vParms.z = 0.0f;
vParms.w = 0.0f;
pShaderAPI->SetPixelShaderConstant( 1, vParms.Base(), 2 );
pShaderAPI->SetPixelShaderConstant( 1, vParms.Base(), 1 );
} // DYNAMIC_STATE
@@ -1,462 +1,264 @@
#include "shaderlib/cshader.h"
class vertexlit_and_unlit_generic_vs20_Static_Index
{
private:
int m_nVERTEXCOLOR;
#ifdef _DEBUG
bool m_bVERTEXCOLOR;
#endif
public:
void SetVERTEXCOLOR( int i )
{
Assert( i >= 0 && i <= 1 );
m_nVERTEXCOLOR = i;
#ifdef _DEBUG
m_bVERTEXCOLOR = true;
#endif
}
void SetVERTEXCOLOR( bool i )
{
m_nVERTEXCOLOR = i ? 1 : 0;
#ifdef _DEBUG
m_bVERTEXCOLOR = true;
#endif
}
private:
int m_nCUBEMAP;
#ifdef _DEBUG
bool m_bCUBEMAP;
#endif
public:
void SetCUBEMAP( int i )
{
Assert( i >= 0 && i <= 1 );
m_nCUBEMAP = i;
#ifdef _DEBUG
m_bCUBEMAP = true;
#endif
}
void SetCUBEMAP( bool i )
{
m_nCUBEMAP = i ? 1 : 0;
#ifdef _DEBUG
m_bCUBEMAP = true;
#endif
}
private:
int m_nHALFLAMBERT;
#ifdef _DEBUG
bool m_bHALFLAMBERT;
#endif
public:
void SetHALFLAMBERT( int i )
{
Assert( i >= 0 && i <= 1 );
m_nHALFLAMBERT = i;
#ifdef _DEBUG
m_bHALFLAMBERT = true;
#endif
}
void SetHALFLAMBERT( bool i )
{
m_nHALFLAMBERT = i ? 1 : 0;
#ifdef _DEBUG
m_bHALFLAMBERT = true;
#endif
}
private:
int m_nFLASHLIGHT;
#ifdef _DEBUG
bool m_bFLASHLIGHT;
#endif
public:
void SetFLASHLIGHT( int i )
{
Assert( i >= 0 && i <= 1 );
m_nFLASHLIGHT = i;
#ifdef _DEBUG
m_bFLASHLIGHT = true;
#endif
}
void SetFLASHLIGHT( bool i )
{
m_nFLASHLIGHT = i ? 1 : 0;
#ifdef _DEBUG
m_bFLASHLIGHT = true;
#endif
}
private:
int m_nSEAMLESS_BASE;
#ifdef _DEBUG
bool m_bSEAMLESS_BASE;
#endif
public:
void SetSEAMLESS_BASE( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSEAMLESS_BASE = i;
#ifdef _DEBUG
m_bSEAMLESS_BASE = true;
#endif
}
void SetSEAMLESS_BASE( bool i )
{
m_nSEAMLESS_BASE = i ? 1 : 0;
#ifdef _DEBUG
m_bSEAMLESS_BASE = true;
#endif
}
private:
int m_nSEAMLESS_DETAIL;
#ifdef _DEBUG
bool m_bSEAMLESS_DETAIL;
#endif
public:
void SetSEAMLESS_DETAIL( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSEAMLESS_DETAIL = i;
#ifdef _DEBUG
m_bSEAMLESS_DETAIL = true;
#endif
}
void SetSEAMLESS_DETAIL( bool i )
{
m_nSEAMLESS_DETAIL = i ? 1 : 0;
#ifdef _DEBUG
m_bSEAMLESS_DETAIL = true;
#endif
}
private:
int m_nSEPARATE_DETAIL_UVS;
#ifdef _DEBUG
bool m_bSEPARATE_DETAIL_UVS;
#endif
public:
void SetSEPARATE_DETAIL_UVS( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSEPARATE_DETAIL_UVS = i;
#ifdef _DEBUG
m_bSEPARATE_DETAIL_UVS = true;
#endif
}
void SetSEPARATE_DETAIL_UVS( bool i )
{
m_nSEPARATE_DETAIL_UVS = i ? 1 : 0;
#ifdef _DEBUG
m_bSEPARATE_DETAIL_UVS = true;
#endif
}
private:
int m_nUSE_STATIC_CONTROL_FLOW;
#ifdef _DEBUG
bool m_bUSE_STATIC_CONTROL_FLOW;
#endif
public:
void SetUSE_STATIC_CONTROL_FLOW( int i )
{
Assert( i >= 0 && i <= 1 );
m_nUSE_STATIC_CONTROL_FLOW = i;
#ifdef _DEBUG
m_bUSE_STATIC_CONTROL_FLOW = true;
#endif
}
void SetUSE_STATIC_CONTROL_FLOW( bool i )
{
m_nUSE_STATIC_CONTROL_FLOW = i ? 1 : 0;
#ifdef _DEBUG
m_bUSE_STATIC_CONTROL_FLOW = true;
#endif
}
private:
int m_nDONT_GAMMA_CONVERT_VERTEX_COLOR;
#ifdef _DEBUG
bool m_bDONT_GAMMA_CONVERT_VERTEX_COLOR;
#endif
public:
void SetDONT_GAMMA_CONVERT_VERTEX_COLOR( int i )
{
Assert( i >= 0 && i <= 1 );
m_nDONT_GAMMA_CONVERT_VERTEX_COLOR = i;
#ifdef _DEBUG
m_bDONT_GAMMA_CONVERT_VERTEX_COLOR = true;
#endif
}
void SetDONT_GAMMA_CONVERT_VERTEX_COLOR( bool i )
{
m_nDONT_GAMMA_CONVERT_VERTEX_COLOR = i ? 1 : 0;
#ifdef _DEBUG
m_bDONT_GAMMA_CONVERT_VERTEX_COLOR = true;
#endif
}
public:
vertexlit_and_unlit_generic_vs20_Static_Index( )
{
#ifdef _DEBUG
m_bVERTEXCOLOR = false;
#endif // _DEBUG
m_nVERTEXCOLOR = 0;
#ifdef _DEBUG
m_bCUBEMAP = false;
#endif // _DEBUG
m_nCUBEMAP = 0;
#ifdef _DEBUG
m_bHALFLAMBERT = false;
#endif // _DEBUG
m_nHALFLAMBERT = 0;
#ifdef _DEBUG
m_bFLASHLIGHT = false;
#endif // _DEBUG
m_nFLASHLIGHT = 0;
#ifdef _DEBUG
m_bSEAMLESS_BASE = false;
#endif // _DEBUG
m_nSEAMLESS_BASE = 0;
#ifdef _DEBUG
m_bSEAMLESS_DETAIL = false;
#endif // _DEBUG
m_nSEAMLESS_DETAIL = 0;
#ifdef _DEBUG
m_bSEPARATE_DETAIL_UVS = false;
#endif // _DEBUG
m_nSEPARATE_DETAIL_UVS = 0;
#ifdef _DEBUG
m_bUSE_STATIC_CONTROL_FLOW = false;
#endif // _DEBUG
m_nUSE_STATIC_CONTROL_FLOW = 0;
#ifdef _DEBUG
m_bDONT_GAMMA_CONVERT_VERTEX_COLOR = false;
#endif // _DEBUG
m_nDONT_GAMMA_CONVERT_VERTEX_COLOR = 0;
}
int GetIndex()
{
// Asserts to make sure that we aren't using any skipped combinations.
// Asserts to make sure that we are setting all of the combination vars.
#ifdef _DEBUG
bool bAllStaticVarsDefined = m_bVERTEXCOLOR && m_bCUBEMAP && m_bHALFLAMBERT && m_bFLASHLIGHT && m_bSEAMLESS_BASE && m_bSEAMLESS_DETAIL && m_bSEPARATE_DETAIL_UVS && m_bUSE_STATIC_CONTROL_FLOW && m_bDONT_GAMMA_CONVERT_VERTEX_COLOR;
Assert( bAllStaticVarsDefined );
#endif // _DEBUG
return ( 384 * m_nVERTEXCOLOR ) + ( 768 * m_nCUBEMAP ) + ( 1536 * m_nHALFLAMBERT ) + ( 3072 * m_nFLASHLIGHT ) + ( 6144 * m_nSEAMLESS_BASE ) + ( 12288 * m_nSEAMLESS_DETAIL ) + ( 24576 * m_nSEPARATE_DETAIL_UVS ) + ( 49152 * m_nUSE_STATIC_CONTROL_FLOW ) + ( 98304 * m_nDONT_GAMMA_CONVERT_VERTEX_COLOR ) + 0;
}
};
#define shaderStaticTest_vertexlit_and_unlit_generic_vs20 vsh_forgot_to_set_static_VERTEXCOLOR + vsh_forgot_to_set_static_CUBEMAP + vsh_forgot_to_set_static_HALFLAMBERT + vsh_forgot_to_set_static_FLASHLIGHT + vsh_forgot_to_set_static_SEAMLESS_BASE + vsh_forgot_to_set_static_SEAMLESS_DETAIL + vsh_forgot_to_set_static_SEPARATE_DETAIL_UVS + vsh_forgot_to_set_static_USE_STATIC_CONTROL_FLOW + vsh_forgot_to_set_static_DONT_GAMMA_CONVERT_VERTEX_COLOR + 0
class vertexlit_and_unlit_generic_vs20_Dynamic_Index
{
private:
int m_nCOMPRESSED_VERTS;
#ifdef _DEBUG
bool m_bCOMPRESSED_VERTS;
#endif
public:
void SetCOMPRESSED_VERTS( int i )
{
Assert( i >= 0 && i <= 1 );
m_nCOMPRESSED_VERTS = i;
#ifdef _DEBUG
m_bCOMPRESSED_VERTS = true;
#endif
}
void SetCOMPRESSED_VERTS( bool i )
{
m_nCOMPRESSED_VERTS = i ? 1 : 0;
#ifdef _DEBUG
m_bCOMPRESSED_VERTS = true;
#endif
}
private:
int m_nDYNAMIC_LIGHT;
#ifdef _DEBUG
bool m_bDYNAMIC_LIGHT;
#endif
public:
void SetDYNAMIC_LIGHT( int i )
{
Assert( i >= 0 && i <= 1 );
m_nDYNAMIC_LIGHT = i;
#ifdef _DEBUG
m_bDYNAMIC_LIGHT = true;
#endif
}
void SetDYNAMIC_LIGHT( bool i )
{
m_nDYNAMIC_LIGHT = i ? 1 : 0;
#ifdef _DEBUG
m_bDYNAMIC_LIGHT = true;
#endif
}
private:
int m_nSTATIC_LIGHT_VERTEX;
#ifdef _DEBUG
bool m_bSTATIC_LIGHT_VERTEX;
#endif
public:
void SetSTATIC_LIGHT_VERTEX( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSTATIC_LIGHT_VERTEX = i;
#ifdef _DEBUG
m_bSTATIC_LIGHT_VERTEX = true;
#endif
}
void SetSTATIC_LIGHT_VERTEX( bool i )
{
m_nSTATIC_LIGHT_VERTEX = i ? 1 : 0;
#ifdef _DEBUG
m_bSTATIC_LIGHT_VERTEX = true;
#endif
}
private:
int m_nSTATIC_LIGHT_LIGHTMAP;
#ifdef _DEBUG
bool m_bSTATIC_LIGHT_LIGHTMAP;
#endif
public:
void SetSTATIC_LIGHT_LIGHTMAP( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSTATIC_LIGHT_LIGHTMAP = i;
#ifdef _DEBUG
m_bSTATIC_LIGHT_LIGHTMAP = true;
#endif
}
void SetSTATIC_LIGHT_LIGHTMAP( bool i )
{
m_nSTATIC_LIGHT_LIGHTMAP = i ? 1 : 0;
#ifdef _DEBUG
m_bSTATIC_LIGHT_LIGHTMAP = true;
#endif
}
private:
int m_nDOWATERFOG;
#ifdef _DEBUG
bool m_bDOWATERFOG;
#endif
public:
void SetDOWATERFOG( int i )
{
Assert( i >= 0 && i <= 1 );
m_nDOWATERFOG = i;
#ifdef _DEBUG
m_bDOWATERFOG = true;
#endif
}
void SetDOWATERFOG( bool i )
{
m_nDOWATERFOG = i ? 1 : 0;
#ifdef _DEBUG
m_bDOWATERFOG = true;
#endif
}
private:
int m_nSKINNING;
#ifdef _DEBUG
bool m_bSKINNING;
#endif
public:
void SetSKINNING( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSKINNING = i;
#ifdef _DEBUG
m_bSKINNING = true;
#endif
}
void SetSKINNING( bool i )
{
m_nSKINNING = i ? 1 : 0;
#ifdef _DEBUG
m_bSKINNING = true;
#endif
}
private:
int m_nLIGHTING_PREVIEW;
#ifdef _DEBUG
bool m_bLIGHTING_PREVIEW;
#endif
public:
void SetLIGHTING_PREVIEW( int i )
{
Assert( i >= 0 && i <= 1 );
m_nLIGHTING_PREVIEW = i;
#ifdef _DEBUG
m_bLIGHTING_PREVIEW = true;
#endif
}
void SetLIGHTING_PREVIEW( bool i )
{
m_nLIGHTING_PREVIEW = i ? 1 : 0;
#ifdef _DEBUG
m_bLIGHTING_PREVIEW = true;
#endif
}
private:
int m_nNUM_LIGHTS;
#ifdef _DEBUG
bool m_bNUM_LIGHTS;
#endif
public:
void SetNUM_LIGHTS( int i )
{
Assert( i >= 0 && i <= 2 );
m_nNUM_LIGHTS = i;
#ifdef _DEBUG
m_bNUM_LIGHTS = true;
#endif
}
void SetNUM_LIGHTS( bool i )
{
m_nNUM_LIGHTS = i ? 1 : 0;
#ifdef _DEBUG
m_bNUM_LIGHTS = true;
#endif
}
public:
vertexlit_and_unlit_generic_vs20_Dynamic_Index()
{
#ifdef _DEBUG
m_bCOMPRESSED_VERTS = false;
#endif // _DEBUG
m_nCOMPRESSED_VERTS = 0;
#ifdef _DEBUG
m_bDYNAMIC_LIGHT = false;
#endif // _DEBUG
m_nDYNAMIC_LIGHT = 0;
#ifdef _DEBUG
m_bSTATIC_LIGHT_VERTEX = false;
#endif // _DEBUG
m_nSTATIC_LIGHT_VERTEX = 0;
#ifdef _DEBUG
m_bSTATIC_LIGHT_LIGHTMAP = false;
#endif // _DEBUG
m_nSTATIC_LIGHT_LIGHTMAP = 0;
#ifdef _DEBUG
m_bDOWATERFOG = false;
#endif // _DEBUG
m_nDOWATERFOG = 0;
#ifdef _DEBUG
m_bSKINNING = false;
#endif // _DEBUG
m_nSKINNING = 0;
#ifdef _DEBUG
m_bLIGHTING_PREVIEW = false;
#endif // _DEBUG
m_nLIGHTING_PREVIEW = 0;
#ifdef _DEBUG
m_bNUM_LIGHTS = false;
#endif // _DEBUG
m_nNUM_LIGHTS = 0;
}
int GetIndex()
{
// Asserts to make sure that we aren't using any skipped combinations.
// Asserts to make sure that we are setting all of the combination vars.
#ifdef _DEBUG
bool bAllDynamicVarsDefined = m_bCOMPRESSED_VERTS && m_bDYNAMIC_LIGHT && m_bSTATIC_LIGHT_VERTEX && m_bSTATIC_LIGHT_LIGHTMAP && m_bDOWATERFOG && m_bSKINNING && m_bLIGHTING_PREVIEW && m_bNUM_LIGHTS;
Assert( bAllDynamicVarsDefined );
#endif // _DEBUG
return ( 1 * m_nCOMPRESSED_VERTS ) + ( 2 * m_nDYNAMIC_LIGHT ) + ( 4 * m_nSTATIC_LIGHT_VERTEX ) + ( 8 * m_nSTATIC_LIGHT_LIGHTMAP ) + ( 16 * m_nDOWATERFOG ) + ( 32 * m_nSKINNING ) + ( 64 * m_nLIGHTING_PREVIEW ) + ( 128 * m_nNUM_LIGHTS ) + 0;
}
};
#define shaderDynamicTest_vertexlit_and_unlit_generic_vs20 vsh_forgot_to_set_dynamic_COMPRESSED_VERTS + vsh_forgot_to_set_dynamic_DYNAMIC_LIGHT + vsh_forgot_to_set_dynamic_STATIC_LIGHT_VERTEX + vsh_forgot_to_set_dynamic_STATIC_LIGHT_LIGHTMAP + vsh_forgot_to_set_dynamic_DOWATERFOG + vsh_forgot_to_set_dynamic_SKINNING + vsh_forgot_to_set_dynamic_LIGHTING_PREVIEW + vsh_forgot_to_set_dynamic_NUM_LIGHTS + 0
// ALL SKIP STATEMENTS THAT AFFECT THIS SHADER!!!
// $USE_STATIC_CONTROL_FLOW && ( $NUM_LIGHTS > 0 )
// ($SEPARATE_DETAIL_UVS) && ($SEAMLESS_DETAIL)
// ($DONT_GAMMA_CONVERT_VERTEX_COLOR && ( ! $VERTEXCOLOR ) )
// defined $LIGHTING_PREVIEW && defined $FASTPATH && $LIGHTING_PREVIEW && $FASTPATH
#ifndef VERTEXLIT_AND_UNLIT_GENERIC_VS20_H
#define VERTEXLIT_AND_UNLIT_GENERIC_VS20_H
#include "shaderapi/ishaderapi.h"
#include "shaderapi/ishadershadow.h"
#include "materialsystem/imaterialvar.h"
class vertexlit_and_unlit_generic_vs20_Static_Index
{
unsigned int m_nVERTEXCOLOR : 2;
unsigned int m_nCUBEMAP : 2;
unsigned int m_nHALFLAMBERT : 2;
unsigned int m_nFLASHLIGHT : 2;
unsigned int m_nSEAMLESS_BASE : 2;
unsigned int m_nSEAMLESS_DETAIL : 2;
unsigned int m_nSEPARATE_DETAIL_UVS : 2;
unsigned int m_nUSE_STATIC_CONTROL_FLOW : 2;
unsigned int m_nDONT_GAMMA_CONVERT_VERTEX_COLOR : 2;
#ifdef _DEBUG
bool m_bVERTEXCOLOR : 1;
bool m_bCUBEMAP : 1;
bool m_bHALFLAMBERT : 1;
bool m_bFLASHLIGHT : 1;
bool m_bSEAMLESS_BASE : 1;
bool m_bSEAMLESS_DETAIL : 1;
bool m_bSEPARATE_DETAIL_UVS : 1;
bool m_bUSE_STATIC_CONTROL_FLOW : 1;
bool m_bDONT_GAMMA_CONVERT_VERTEX_COLOR : 1;
#endif // _DEBUG
public:
void SetVERTEXCOLOR( int i )
{
Assert( i >= 0 && i <= 1 );
m_nVERTEXCOLOR = i;
#ifdef _DEBUG
m_bVERTEXCOLOR = true;
#endif // _DEBUG
}
void SetCUBEMAP( int i )
{
Assert( i >= 0 && i <= 1 );
m_nCUBEMAP = i;
#ifdef _DEBUG
m_bCUBEMAP = true;
#endif // _DEBUG
}
void SetHALFLAMBERT( int i )
{
Assert( i >= 0 && i <= 1 );
m_nHALFLAMBERT = i;
#ifdef _DEBUG
m_bHALFLAMBERT = true;
#endif // _DEBUG
}
void SetFLASHLIGHT( int i )
{
Assert( i >= 0 && i <= 1 );
m_nFLASHLIGHT = i;
#ifdef _DEBUG
m_bFLASHLIGHT = true;
#endif // _DEBUG
}
void SetSEAMLESS_BASE( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSEAMLESS_BASE = i;
#ifdef _DEBUG
m_bSEAMLESS_BASE = true;
#endif // _DEBUG
}
void SetSEAMLESS_DETAIL( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSEAMLESS_DETAIL = i;
#ifdef _DEBUG
m_bSEAMLESS_DETAIL = true;
#endif // _DEBUG
}
void SetSEPARATE_DETAIL_UVS( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSEPARATE_DETAIL_UVS = i;
#ifdef _DEBUG
m_bSEPARATE_DETAIL_UVS = true;
#endif // _DEBUG
}
void SetUSE_STATIC_CONTROL_FLOW( int i )
{
Assert( i >= 0 && i <= 1 );
m_nUSE_STATIC_CONTROL_FLOW = i;
#ifdef _DEBUG
m_bUSE_STATIC_CONTROL_FLOW = true;
#endif // _DEBUG
}
void SetDONT_GAMMA_CONVERT_VERTEX_COLOR( int i )
{
Assert( i >= 0 && i <= 1 );
m_nDONT_GAMMA_CONVERT_VERTEX_COLOR = i;
#ifdef _DEBUG
m_bDONT_GAMMA_CONVERT_VERTEX_COLOR = true;
#endif // _DEBUG
}
vertexlit_and_unlit_generic_vs20_Static_Index( )
{
m_nVERTEXCOLOR = 0;
m_nCUBEMAP = 0;
m_nHALFLAMBERT = 0;
m_nFLASHLIGHT = 0;
m_nSEAMLESS_BASE = 0;
m_nSEAMLESS_DETAIL = 0;
m_nSEPARATE_DETAIL_UVS = 0;
m_nUSE_STATIC_CONTROL_FLOW = 0;
m_nDONT_GAMMA_CONVERT_VERTEX_COLOR = 0;
#ifdef _DEBUG
m_bVERTEXCOLOR = false;
m_bCUBEMAP = false;
m_bHALFLAMBERT = false;
m_bFLASHLIGHT = false;
m_bSEAMLESS_BASE = false;
m_bSEAMLESS_DETAIL = false;
m_bSEPARATE_DETAIL_UVS = false;
m_bUSE_STATIC_CONTROL_FLOW = false;
m_bDONT_GAMMA_CONVERT_VERTEX_COLOR = false;
#endif // _DEBUG
}
int GetIndex() const
{
Assert( m_bVERTEXCOLOR && m_bCUBEMAP && m_bHALFLAMBERT && m_bFLASHLIGHT && m_bSEAMLESS_BASE && m_bSEAMLESS_DETAIL && m_bSEPARATE_DETAIL_UVS && m_bUSE_STATIC_CONTROL_FLOW && m_bDONT_GAMMA_CONVERT_VERTEX_COLOR );
return ( 192 * m_nVERTEXCOLOR ) + ( 384 * m_nCUBEMAP ) + ( 768 * m_nHALFLAMBERT ) + ( 1536 * m_nFLASHLIGHT ) + ( 3072 * m_nSEAMLESS_BASE ) + ( 6144 * m_nSEAMLESS_DETAIL ) + ( 12288 * m_nSEPARATE_DETAIL_UVS ) + ( 24576 * m_nUSE_STATIC_CONTROL_FLOW ) + ( 49152 * m_nDONT_GAMMA_CONVERT_VERTEX_COLOR ) + 0;
}
};
#define shaderStaticTest_vertexlit_and_unlit_generic_vs20 vsh_forgot_to_set_static_VERTEXCOLOR + vsh_forgot_to_set_static_CUBEMAP + vsh_forgot_to_set_static_HALFLAMBERT + vsh_forgot_to_set_static_FLASHLIGHT + vsh_forgot_to_set_static_SEAMLESS_BASE + vsh_forgot_to_set_static_SEAMLESS_DETAIL + vsh_forgot_to_set_static_SEPARATE_DETAIL_UVS + vsh_forgot_to_set_static_USE_STATIC_CONTROL_FLOW + vsh_forgot_to_set_static_DONT_GAMMA_CONVERT_VERTEX_COLOR
class vertexlit_and_unlit_generic_vs20_Dynamic_Index
{
unsigned int m_nCOMPRESSED_VERTS : 2;
unsigned int m_nDYNAMIC_LIGHT : 2;
unsigned int m_nSTATIC_LIGHT : 2;
unsigned int m_nDOWATERFOG : 2;
unsigned int m_nSKINNING : 2;
unsigned int m_nLIGHTING_PREVIEW : 2;
unsigned int m_nNUM_LIGHTS : 2;
#ifdef _DEBUG
bool m_bCOMPRESSED_VERTS : 1;
bool m_bDYNAMIC_LIGHT : 1;
bool m_bSTATIC_LIGHT : 1;
bool m_bDOWATERFOG : 1;
bool m_bSKINNING : 1;
bool m_bLIGHTING_PREVIEW : 1;
bool m_bNUM_LIGHTS : 1;
#endif // _DEBUG
public:
void SetCOMPRESSED_VERTS( int i )
{
Assert( i >= 0 && i <= 1 );
m_nCOMPRESSED_VERTS = i;
#ifdef _DEBUG
m_bCOMPRESSED_VERTS = true;
#endif // _DEBUG
}
void SetDYNAMIC_LIGHT( int i )
{
Assert( i >= 0 && i <= 1 );
m_nDYNAMIC_LIGHT = i;
#ifdef _DEBUG
m_bDYNAMIC_LIGHT = true;
#endif // _DEBUG
}
void SetSTATIC_LIGHT( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSTATIC_LIGHT = i;
#ifdef _DEBUG
m_bSTATIC_LIGHT = true;
#endif // _DEBUG
}
void SetDOWATERFOG( int i )
{
Assert( i >= 0 && i <= 1 );
m_nDOWATERFOG = i;
#ifdef _DEBUG
m_bDOWATERFOG = true;
#endif // _DEBUG
}
void SetSKINNING( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSKINNING = i;
#ifdef _DEBUG
m_bSKINNING = true;
#endif // _DEBUG
}
void SetLIGHTING_PREVIEW( int i )
{
Assert( i >= 0 && i <= 1 );
m_nLIGHTING_PREVIEW = i;
#ifdef _DEBUG
m_bLIGHTING_PREVIEW = true;
#endif // _DEBUG
}
void SetNUM_LIGHTS( int i )
{
Assert( i >= 0 && i <= 2 );
m_nNUM_LIGHTS = i;
#ifdef _DEBUG
m_bNUM_LIGHTS = true;
#endif // _DEBUG
}
vertexlit_and_unlit_generic_vs20_Dynamic_Index()
{
m_nCOMPRESSED_VERTS = 0;
m_nDYNAMIC_LIGHT = 0;
m_nSTATIC_LIGHT = 0;
m_nDOWATERFOG = 0;
m_nSKINNING = 0;
m_nLIGHTING_PREVIEW = 0;
m_nNUM_LIGHTS = 0;
#ifdef _DEBUG
m_bCOMPRESSED_VERTS = false;
m_bDYNAMIC_LIGHT = false;
m_bSTATIC_LIGHT = false;
m_bDOWATERFOG = false;
m_bSKINNING = false;
m_bLIGHTING_PREVIEW = false;
m_bNUM_LIGHTS = false;
#endif // _DEBUG
}
int GetIndex() const
{
Assert( m_bCOMPRESSED_VERTS && m_bDYNAMIC_LIGHT && m_bSTATIC_LIGHT && m_bDOWATERFOG && m_bSKINNING && m_bLIGHTING_PREVIEW && m_bNUM_LIGHTS );
return ( 1 * m_nCOMPRESSED_VERTS ) + ( 2 * m_nDYNAMIC_LIGHT ) + ( 4 * m_nSTATIC_LIGHT ) + ( 8 * m_nDOWATERFOG ) + ( 16 * m_nSKINNING ) + ( 32 * m_nLIGHTING_PREVIEW ) + ( 64 * m_nNUM_LIGHTS ) + 0;
}
};
#define shaderDynamicTest_vertexlit_and_unlit_generic_vs20 vsh_forgot_to_set_dynamic_COMPRESSED_VERTS + vsh_forgot_to_set_dynamic_DYNAMIC_LIGHT + vsh_forgot_to_set_dynamic_STATIC_LIGHT + vsh_forgot_to_set_dynamic_DOWATERFOG + vsh_forgot_to_set_dynamic_SKINNING + vsh_forgot_to_set_dynamic_LIGHTING_PREVIEW + vsh_forgot_to_set_dynamic_NUM_LIGHTS
#endif // VERTEXLIT_AND_UNLIT_GENERIC_VS20_H
+322 -537
View File
@@ -1,537 +1,322 @@
#include "shaderlib/cshader.h"
class skin_ps20b_Static_Index
{
private:
int m_nCONVERT_TO_SRGB;
#ifdef _DEBUG
bool m_bCONVERT_TO_SRGB;
#endif
public:
void SetCONVERT_TO_SRGB( int i )
{
Assert( i >= 0 && i <= 0 );
m_nCONVERT_TO_SRGB = i;
#ifdef _DEBUG
m_bCONVERT_TO_SRGB = true;
#endif
}
void SetCONVERT_TO_SRGB( bool i )
{
m_nCONVERT_TO_SRGB = i ? 1 : 0;
#ifdef _DEBUG
m_bCONVERT_TO_SRGB = true;
#endif
}
private:
int m_nCUBEMAP;
#ifdef _DEBUG
bool m_bCUBEMAP;
#endif
public:
void SetCUBEMAP( int i )
{
Assert( i >= 0 && i <= 1 );
m_nCUBEMAP = i;
#ifdef _DEBUG
m_bCUBEMAP = true;
#endif
}
void SetCUBEMAP( bool i )
{
m_nCUBEMAP = i ? 1 : 0;
#ifdef _DEBUG
m_bCUBEMAP = true;
#endif
}
private:
int m_nSELFILLUM;
#ifdef _DEBUG
bool m_bSELFILLUM;
#endif
public:
void SetSELFILLUM( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSELFILLUM = i;
#ifdef _DEBUG
m_bSELFILLUM = true;
#endif
}
void SetSELFILLUM( bool i )
{
m_nSELFILLUM = i ? 1 : 0;
#ifdef _DEBUG
m_bSELFILLUM = true;
#endif
}
private:
int m_nSELFILLUMFRESNEL;
#ifdef _DEBUG
bool m_bSELFILLUMFRESNEL;
#endif
public:
void SetSELFILLUMFRESNEL( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSELFILLUMFRESNEL = i;
#ifdef _DEBUG
m_bSELFILLUMFRESNEL = true;
#endif
}
void SetSELFILLUMFRESNEL( bool i )
{
m_nSELFILLUMFRESNEL = i ? 1 : 0;
#ifdef _DEBUG
m_bSELFILLUMFRESNEL = true;
#endif
}
private:
int m_nFLASHLIGHT;
#ifdef _DEBUG
bool m_bFLASHLIGHT;
#endif
public:
void SetFLASHLIGHT( int i )
{
Assert( i >= 0 && i <= 1 );
m_nFLASHLIGHT = i;
#ifdef _DEBUG
m_bFLASHLIGHT = true;
#endif
}
void SetFLASHLIGHT( bool i )
{
m_nFLASHLIGHT = i ? 1 : 0;
#ifdef _DEBUG
m_bFLASHLIGHT = true;
#endif
}
private:
int m_nLIGHTWARPTEXTURE;
#ifdef _DEBUG
bool m_bLIGHTWARPTEXTURE;
#endif
public:
void SetLIGHTWARPTEXTURE( int i )
{
Assert( i >= 0 && i <= 1 );
m_nLIGHTWARPTEXTURE = i;
#ifdef _DEBUG
m_bLIGHTWARPTEXTURE = true;
#endif
}
void SetLIGHTWARPTEXTURE( bool i )
{
m_nLIGHTWARPTEXTURE = i ? 1 : 0;
#ifdef _DEBUG
m_bLIGHTWARPTEXTURE = true;
#endif
}
private:
int m_nPHONGWARPTEXTURE;
#ifdef _DEBUG
bool m_bPHONGWARPTEXTURE;
#endif
public:
void SetPHONGWARPTEXTURE( int i )
{
Assert( i >= 0 && i <= 1 );
m_nPHONGWARPTEXTURE = i;
#ifdef _DEBUG
m_bPHONGWARPTEXTURE = true;
#endif
}
void SetPHONGWARPTEXTURE( bool i )
{
m_nPHONGWARPTEXTURE = i ? 1 : 0;
#ifdef _DEBUG
m_bPHONGWARPTEXTURE = true;
#endif
}
private:
int m_nWRINKLEMAP;
#ifdef _DEBUG
bool m_bWRINKLEMAP;
#endif
public:
void SetWRINKLEMAP( int i )
{
Assert( i >= 0 && i <= 1 );
m_nWRINKLEMAP = i;
#ifdef _DEBUG
m_bWRINKLEMAP = true;
#endif
}
void SetWRINKLEMAP( bool i )
{
m_nWRINKLEMAP = i ? 1 : 0;
#ifdef _DEBUG
m_bWRINKLEMAP = true;
#endif
}
private:
int m_nDETAIL_BLEND_MODE;
#ifdef _DEBUG
bool m_bDETAIL_BLEND_MODE;
#endif
public:
void SetDETAIL_BLEND_MODE( int i )
{
Assert( i >= 0 && i <= 6 );
m_nDETAIL_BLEND_MODE = i;
#ifdef _DEBUG
m_bDETAIL_BLEND_MODE = true;
#endif
}
void SetDETAIL_BLEND_MODE( bool i )
{
m_nDETAIL_BLEND_MODE = i ? 1 : 0;
#ifdef _DEBUG
m_bDETAIL_BLEND_MODE = true;
#endif
}
private:
int m_nDETAILTEXTURE;
#ifdef _DEBUG
bool m_bDETAILTEXTURE;
#endif
public:
void SetDETAILTEXTURE( int i )
{
Assert( i >= 0 && i <= 1 );
m_nDETAILTEXTURE = i;
#ifdef _DEBUG
m_bDETAILTEXTURE = true;
#endif
}
void SetDETAILTEXTURE( bool i )
{
m_nDETAILTEXTURE = i ? 1 : 0;
#ifdef _DEBUG
m_bDETAILTEXTURE = true;
#endif
}
private:
int m_nRIMLIGHT;
#ifdef _DEBUG
bool m_bRIMLIGHT;
#endif
public:
void SetRIMLIGHT( int i )
{
Assert( i >= 0 && i <= 1 );
m_nRIMLIGHT = i;
#ifdef _DEBUG
m_bRIMLIGHT = true;
#endif
}
void SetRIMLIGHT( bool i )
{
m_nRIMLIGHT = i ? 1 : 0;
#ifdef _DEBUG
m_bRIMLIGHT = true;
#endif
}
private:
int m_nFLASHLIGHTDEPTHFILTERMODE;
#ifdef _DEBUG
bool m_bFLASHLIGHTDEPTHFILTERMODE;
#endif
public:
void SetFLASHLIGHTDEPTHFILTERMODE( int i )
{
Assert( i >= 0 && i <= 2 );
m_nFLASHLIGHTDEPTHFILTERMODE = i;
#ifdef _DEBUG
m_bFLASHLIGHTDEPTHFILTERMODE = true;
#endif
}
void SetFLASHLIGHTDEPTHFILTERMODE( bool i )
{
m_nFLASHLIGHTDEPTHFILTERMODE = i ? 1 : 0;
#ifdef _DEBUG
m_bFLASHLIGHTDEPTHFILTERMODE = true;
#endif
}
private:
int m_nFASTPATH_NOBUMP;
#ifdef _DEBUG
bool m_bFASTPATH_NOBUMP;
#endif
public:
void SetFASTPATH_NOBUMP( int i )
{
Assert( i >= 0 && i <= 1 );
m_nFASTPATH_NOBUMP = i;
#ifdef _DEBUG
m_bFASTPATH_NOBUMP = true;
#endif
}
void SetFASTPATH_NOBUMP( bool i )
{
m_nFASTPATH_NOBUMP = i ? 1 : 0;
#ifdef _DEBUG
m_bFASTPATH_NOBUMP = true;
#endif
}
private:
int m_nBLENDTINTBYBASEALPHA;
#ifdef _DEBUG
bool m_bBLENDTINTBYBASEALPHA;
#endif
public:
void SetBLENDTINTBYBASEALPHA( int i )
{
Assert( i >= 0 && i <= 1 );
m_nBLENDTINTBYBASEALPHA = i;
#ifdef _DEBUG
m_bBLENDTINTBYBASEALPHA = true;
#endif
}
void SetBLENDTINTBYBASEALPHA( bool i )
{
m_nBLENDTINTBYBASEALPHA = i ? 1 : 0;
#ifdef _DEBUG
m_bBLENDTINTBYBASEALPHA = true;
#endif
}
public:
skin_ps20b_Static_Index( )
{
#ifdef _DEBUG
m_bCONVERT_TO_SRGB = false;
#endif // _DEBUG
m_nCONVERT_TO_SRGB = 0;
#ifdef _DEBUG
m_bCUBEMAP = false;
#endif // _DEBUG
m_nCUBEMAP = 0;
#ifdef _DEBUG
m_bSELFILLUM = false;
#endif // _DEBUG
m_nSELFILLUM = 0;
#ifdef _DEBUG
m_bSELFILLUMFRESNEL = false;
#endif // _DEBUG
m_nSELFILLUMFRESNEL = 0;
#ifdef _DEBUG
m_bFLASHLIGHT = false;
#endif // _DEBUG
m_nFLASHLIGHT = 0;
#ifdef _DEBUG
m_bLIGHTWARPTEXTURE = false;
#endif // _DEBUG
m_nLIGHTWARPTEXTURE = 0;
#ifdef _DEBUG
m_bPHONGWARPTEXTURE = false;
#endif // _DEBUG
m_nPHONGWARPTEXTURE = 0;
#ifdef _DEBUG
m_bWRINKLEMAP = false;
#endif // _DEBUG
m_nWRINKLEMAP = 0;
#ifdef _DEBUG
m_bDETAIL_BLEND_MODE = false;
#endif // _DEBUG
m_nDETAIL_BLEND_MODE = 0;
#ifdef _DEBUG
m_bDETAILTEXTURE = false;
#endif // _DEBUG
m_nDETAILTEXTURE = 0;
#ifdef _DEBUG
m_bRIMLIGHT = false;
#endif // _DEBUG
m_nRIMLIGHT = 0;
#ifdef _DEBUG
m_bFLASHLIGHTDEPTHFILTERMODE = false;
#endif // _DEBUG
m_nFLASHLIGHTDEPTHFILTERMODE = 0;
#ifdef _DEBUG
m_bFASTPATH_NOBUMP = false;
#endif // _DEBUG
m_nFASTPATH_NOBUMP = 0;
#ifdef _DEBUG
m_bBLENDTINTBYBASEALPHA = false;
#endif // _DEBUG
m_nBLENDTINTBYBASEALPHA = 0;
}
int GetIndex()
{
// Asserts to make sure that we aren't using any skipped combinations.
// Asserts to make sure that we are setting all of the combination vars.
#ifdef _DEBUG
bool bAllStaticVarsDefined = m_bCONVERT_TO_SRGB && m_bCUBEMAP && m_bSELFILLUM && m_bSELFILLUMFRESNEL && m_bFLASHLIGHT && m_bLIGHTWARPTEXTURE && m_bPHONGWARPTEXTURE && m_bWRINKLEMAP && m_bDETAIL_BLEND_MODE && m_bDETAILTEXTURE && m_bRIMLIGHT && m_bFLASHLIGHTDEPTHFILTERMODE && m_bFASTPATH_NOBUMP && m_bBLENDTINTBYBASEALPHA;
Assert( bAllStaticVarsDefined );
#endif // _DEBUG
return ( 160 * m_nCONVERT_TO_SRGB ) + ( 160 * m_nCUBEMAP ) + ( 320 * m_nSELFILLUM ) + ( 640 * m_nSELFILLUMFRESNEL ) + ( 1280 * m_nFLASHLIGHT ) + ( 2560 * m_nLIGHTWARPTEXTURE ) + ( 5120 * m_nPHONGWARPTEXTURE ) + ( 10240 * m_nWRINKLEMAP ) + ( 20480 * m_nDETAIL_BLEND_MODE ) + ( 143360 * m_nDETAILTEXTURE ) + ( 286720 * m_nRIMLIGHT ) + ( 573440 * m_nFLASHLIGHTDEPTHFILTERMODE ) + ( 1720320 * m_nFASTPATH_NOBUMP ) + ( 3440640 * m_nBLENDTINTBYBASEALPHA ) + 0;
}
};
#define shaderStaticTest_skin_ps20b psh_forgot_to_set_static_CONVERT_TO_SRGB + psh_forgot_to_set_static_CUBEMAP + psh_forgot_to_set_static_SELFILLUM + psh_forgot_to_set_static_SELFILLUMFRESNEL + psh_forgot_to_set_static_FLASHLIGHT + psh_forgot_to_set_static_LIGHTWARPTEXTURE + psh_forgot_to_set_static_PHONGWARPTEXTURE + psh_forgot_to_set_static_WRINKLEMAP + psh_forgot_to_set_static_DETAIL_BLEND_MODE + psh_forgot_to_set_static_DETAILTEXTURE + psh_forgot_to_set_static_RIMLIGHT + psh_forgot_to_set_static_FLASHLIGHTDEPTHFILTERMODE + psh_forgot_to_set_static_FASTPATH_NOBUMP + psh_forgot_to_set_static_BLENDTINTBYBASEALPHA + 0
class skin_ps20b_Dynamic_Index
{
private:
int m_nWRITEWATERFOGTODESTALPHA;
#ifdef _DEBUG
bool m_bWRITEWATERFOGTODESTALPHA;
#endif
public:
void SetWRITEWATERFOGTODESTALPHA( int i )
{
Assert( i >= 0 && i <= 1 );
m_nWRITEWATERFOGTODESTALPHA = i;
#ifdef _DEBUG
m_bWRITEWATERFOGTODESTALPHA = true;
#endif
}
void SetWRITEWATERFOGTODESTALPHA( bool i )
{
m_nWRITEWATERFOGTODESTALPHA = i ? 1 : 0;
#ifdef _DEBUG
m_bWRITEWATERFOGTODESTALPHA = true;
#endif
}
private:
int m_nPIXELFOGTYPE;
#ifdef _DEBUG
bool m_bPIXELFOGTYPE;
#endif
public:
void SetPIXELFOGTYPE( int i )
{
Assert( i >= 0 && i <= 1 );
m_nPIXELFOGTYPE = i;
#ifdef _DEBUG
m_bPIXELFOGTYPE = true;
#endif
}
void SetPIXELFOGTYPE( bool i )
{
m_nPIXELFOGTYPE = i ? 1 : 0;
#ifdef _DEBUG
m_bPIXELFOGTYPE = true;
#endif
}
private:
int m_nNUM_LIGHTS;
#ifdef _DEBUG
bool m_bNUM_LIGHTS;
#endif
public:
void SetNUM_LIGHTS( int i )
{
Assert( i >= 0 && i <= 4 );
m_nNUM_LIGHTS = i;
#ifdef _DEBUG
m_bNUM_LIGHTS = true;
#endif
}
void SetNUM_LIGHTS( bool i )
{
m_nNUM_LIGHTS = i ? 1 : 0;
#ifdef _DEBUG
m_bNUM_LIGHTS = true;
#endif
}
private:
int m_nWRITE_DEPTH_TO_DESTALPHA;
#ifdef _DEBUG
bool m_bWRITE_DEPTH_TO_DESTALPHA;
#endif
public:
void SetWRITE_DEPTH_TO_DESTALPHA( int i )
{
Assert( i >= 0 && i <= 1 );
m_nWRITE_DEPTH_TO_DESTALPHA = i;
#ifdef _DEBUG
m_bWRITE_DEPTH_TO_DESTALPHA = true;
#endif
}
void SetWRITE_DEPTH_TO_DESTALPHA( bool i )
{
m_nWRITE_DEPTH_TO_DESTALPHA = i ? 1 : 0;
#ifdef _DEBUG
m_bWRITE_DEPTH_TO_DESTALPHA = true;
#endif
}
private:
int m_nFLASHLIGHTSHADOWS;
#ifdef _DEBUG
bool m_bFLASHLIGHTSHADOWS;
#endif
public:
void SetFLASHLIGHTSHADOWS( int i )
{
Assert( i >= 0 && i <= 1 );
m_nFLASHLIGHTSHADOWS = i;
#ifdef _DEBUG
m_bFLASHLIGHTSHADOWS = true;
#endif
}
void SetFLASHLIGHTSHADOWS( bool i )
{
m_nFLASHLIGHTSHADOWS = i ? 1 : 0;
#ifdef _DEBUG
m_bFLASHLIGHTSHADOWS = true;
#endif
}
private:
int m_nPHONG_USE_EXPONENT_FACTOR;
#ifdef _DEBUG
bool m_bPHONG_USE_EXPONENT_FACTOR;
#endif
public:
void SetPHONG_USE_EXPONENT_FACTOR( int i )
{
Assert( i >= 0 && i <= 1 );
m_nPHONG_USE_EXPONENT_FACTOR = i;
#ifdef _DEBUG
m_bPHONG_USE_EXPONENT_FACTOR = true;
#endif
}
void SetPHONG_USE_EXPONENT_FACTOR( bool i )
{
m_nPHONG_USE_EXPONENT_FACTOR = i ? 1 : 0;
#ifdef _DEBUG
m_bPHONG_USE_EXPONENT_FACTOR = true;
#endif
}
public:
skin_ps20b_Dynamic_Index()
{
#ifdef _DEBUG
m_bWRITEWATERFOGTODESTALPHA = false;
#endif // _DEBUG
m_nWRITEWATERFOGTODESTALPHA = 0;
#ifdef _DEBUG
m_bPIXELFOGTYPE = false;
#endif // _DEBUG
m_nPIXELFOGTYPE = 0;
#ifdef _DEBUG
m_bNUM_LIGHTS = false;
#endif // _DEBUG
m_nNUM_LIGHTS = 0;
#ifdef _DEBUG
m_bWRITE_DEPTH_TO_DESTALPHA = false;
#endif // _DEBUG
m_nWRITE_DEPTH_TO_DESTALPHA = 0;
#ifdef _DEBUG
m_bFLASHLIGHTSHADOWS = false;
#endif // _DEBUG
m_nFLASHLIGHTSHADOWS = 0;
#ifdef _DEBUG
m_bPHONG_USE_EXPONENT_FACTOR = false;
#endif // _DEBUG
m_nPHONG_USE_EXPONENT_FACTOR = 0;
}
int GetIndex()
{
// Asserts to make sure that we aren't using any skipped combinations.
// Asserts to make sure that we are setting all of the combination vars.
#ifdef _DEBUG
bool bAllDynamicVarsDefined = m_bWRITEWATERFOGTODESTALPHA && m_bPIXELFOGTYPE && m_bNUM_LIGHTS && m_bWRITE_DEPTH_TO_DESTALPHA && m_bFLASHLIGHTSHADOWS && m_bPHONG_USE_EXPONENT_FACTOR;
Assert( bAllDynamicVarsDefined );
#endif // _DEBUG
return ( 1 * m_nWRITEWATERFOGTODESTALPHA ) + ( 2 * m_nPIXELFOGTYPE ) + ( 4 * m_nNUM_LIGHTS ) + ( 20 * m_nWRITE_DEPTH_TO_DESTALPHA ) + ( 40 * m_nFLASHLIGHTSHADOWS ) + ( 80 * m_nPHONG_USE_EXPONENT_FACTOR ) + 0;
}
};
#define shaderDynamicTest_skin_ps20b psh_forgot_to_set_dynamic_WRITEWATERFOGTODESTALPHA + psh_forgot_to_set_dynamic_PIXELFOGTYPE + psh_forgot_to_set_dynamic_NUM_LIGHTS + psh_forgot_to_set_dynamic_WRITE_DEPTH_TO_DESTALPHA + psh_forgot_to_set_dynamic_FLASHLIGHTSHADOWS + psh_forgot_to_set_dynamic_PHONG_USE_EXPONENT_FACTOR + 0
// ALL SKIP STATEMENTS THAT AFFECT THIS SHADER!!!
// ($PIXELFOGTYPE == 0) && ($WRITEWATERFOGTODESTALPHA != 0)
// (! $DETAILTEXTURE) && ( $DETAIL_BLEND_MODE != 0 )
// ( $FLASHLIGHT == 0 ) && ( $FLASHLIGHTSHADOWS == 1 )
// ( $FLASHLIGHT == 0 ) && ( $FLASHLIGHTDEPTHFILTERMODE != 0 )
// ( $SELFILLUM == 0 ) && ( $SELFILLUMFRESNEL == 1 )
// ( $FLASHLIGHT == 1 ) && ( $SELFILLUMFRESNEL == 1 )
// ( $FLASHLIGHT == 1 ) && ( $SELFILLUM == 1 )
// ( $BLENDTINTBYBASEALPHA ) && ( $SELFILLUM )
// $FASTPATH_NOBUMP && ( $RIMLIGHT || $DETAILTEXTURE || $PHONGWARPTEXTURE || $SELFILLUM || $BLENDTINTBYBASEALPHA )
// defined $HDRTYPE && defined $HDRENABLED && !$HDRTYPE && $HDRENABLED
// defined $PIXELFOGTYPE && defined $WRITEWATERFOGTODESTALPHA && ( $PIXELFOGTYPE != 1 ) && $WRITEWATERFOGTODESTALPHA
// defined $LIGHTING_PREVIEW && defined $HDRTYPE && $LIGHTING_PREVIEW && $HDRTYPE != 0
// defined $LIGHTING_PREVIEW && defined $FASTPATHENVMAPTINT && $LIGHTING_PREVIEW && $FASTPATHENVMAPTINT
// defined $LIGHTING_PREVIEW && defined $FASTPATHENVMAPCONTRAST && $LIGHTING_PREVIEW && $FASTPATHENVMAPCONTRAST
// defined $LIGHTING_PREVIEW && defined $FASTPATH && $LIGHTING_PREVIEW && $FASTPATH
// ($FLASHLIGHT || $FLASHLIGHTSHADOWS) && $LIGHTING_PREVIEW
// defined $HDRTYPE && defined $HDRENABLED && !$HDRTYPE && $HDRENABLED
// defined $PIXELFOGTYPE && defined $WRITEWATERFOGTODESTALPHA && ( $PIXELFOGTYPE != 1 ) && $WRITEWATERFOGTODESTALPHA
// defined $LIGHTING_PREVIEW && defined $HDRTYPE && $LIGHTING_PREVIEW && $HDRTYPE != 0
// defined $LIGHTING_PREVIEW && defined $FASTPATHENVMAPTINT && $LIGHTING_PREVIEW && $FASTPATHENVMAPTINT
// defined $LIGHTING_PREVIEW && defined $FASTPATHENVMAPCONTRAST && $LIGHTING_PREVIEW && $FASTPATHENVMAPCONTRAST
// defined $LIGHTING_PREVIEW && defined $FASTPATH && $LIGHTING_PREVIEW && $FASTPATH
// ($FLASHLIGHT || $FLASHLIGHTSHADOWS) && $LIGHTING_PREVIEW
#ifndef SKIN_PS20B_H
#define SKIN_PS20B_H
#include "shaderapi/ishaderapi.h"
#include "shaderapi/ishadershadow.h"
#include "materialsystem/imaterialvar.h"
class skin_ps20b_Static_Index
{
unsigned int m_nCONVERT_TO_SRGB : 1;
unsigned int m_nCUBEMAP : 2;
unsigned int m_nSELFILLUM : 2;
unsigned int m_nSELFILLUMFRESNEL : 2;
unsigned int m_nFLASHLIGHT : 2;
unsigned int m_nLIGHTWARPTEXTURE : 2;
unsigned int m_nPHONGWARPTEXTURE : 2;
unsigned int m_nWRINKLEMAP : 2;
unsigned int m_nDETAIL_BLEND_MODE : 3;
unsigned int m_nDETAILTEXTURE : 2;
unsigned int m_nRIMLIGHT : 2;
unsigned int m_nFLASHLIGHTDEPTHFILTERMODE : 2;
unsigned int m_nFASTPATH_NOBUMP : 2;
unsigned int m_nBLENDTINTBYBASEALPHA : 2;
#ifdef _DEBUG
bool m_bCONVERT_TO_SRGB : 1;
bool m_bCUBEMAP : 1;
bool m_bSELFILLUM : 1;
bool m_bSELFILLUMFRESNEL : 1;
bool m_bFLASHLIGHT : 1;
bool m_bLIGHTWARPTEXTURE : 1;
bool m_bPHONGWARPTEXTURE : 1;
bool m_bWRINKLEMAP : 1;
bool m_bDETAIL_BLEND_MODE : 1;
bool m_bDETAILTEXTURE : 1;
bool m_bRIMLIGHT : 1;
bool m_bFLASHLIGHTDEPTHFILTERMODE : 1;
bool m_bFASTPATH_NOBUMP : 1;
bool m_bBLENDTINTBYBASEALPHA : 1;
#endif // _DEBUG
public:
void SetCONVERT_TO_SRGB( int i )
{
Assert( i >= 0 && i <= 0 );
m_nCONVERT_TO_SRGB = i;
#ifdef _DEBUG
m_bCONVERT_TO_SRGB = true;
#endif // _DEBUG
}
void SetCUBEMAP( int i )
{
Assert( i >= 0 && i <= 1 );
m_nCUBEMAP = i;
#ifdef _DEBUG
m_bCUBEMAP = true;
#endif // _DEBUG
}
void SetSELFILLUM( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSELFILLUM = i;
#ifdef _DEBUG
m_bSELFILLUM = true;
#endif // _DEBUG
}
void SetSELFILLUMFRESNEL( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSELFILLUMFRESNEL = i;
#ifdef _DEBUG
m_bSELFILLUMFRESNEL = true;
#endif // _DEBUG
}
void SetFLASHLIGHT( int i )
{
Assert( i >= 0 && i <= 1 );
m_nFLASHLIGHT = i;
#ifdef _DEBUG
m_bFLASHLIGHT = true;
#endif // _DEBUG
}
void SetLIGHTWARPTEXTURE( int i )
{
Assert( i >= 0 && i <= 1 );
m_nLIGHTWARPTEXTURE = i;
#ifdef _DEBUG
m_bLIGHTWARPTEXTURE = true;
#endif // _DEBUG
}
void SetPHONGWARPTEXTURE( int i )
{
Assert( i >= 0 && i <= 1 );
m_nPHONGWARPTEXTURE = i;
#ifdef _DEBUG
m_bPHONGWARPTEXTURE = true;
#endif // _DEBUG
}
void SetWRINKLEMAP( int i )
{
Assert( i >= 0 && i <= 1 );
m_nWRINKLEMAP = i;
#ifdef _DEBUG
m_bWRINKLEMAP = true;
#endif // _DEBUG
}
void SetDETAIL_BLEND_MODE( int i )
{
Assert( i >= 0 && i <= 6 );
m_nDETAIL_BLEND_MODE = i;
#ifdef _DEBUG
m_bDETAIL_BLEND_MODE = true;
#endif // _DEBUG
}
void SetDETAILTEXTURE( int i )
{
Assert( i >= 0 && i <= 1 );
m_nDETAILTEXTURE = i;
#ifdef _DEBUG
m_bDETAILTEXTURE = true;
#endif // _DEBUG
}
void SetRIMLIGHT( int i )
{
Assert( i >= 0 && i <= 1 );
m_nRIMLIGHT = i;
#ifdef _DEBUG
m_bRIMLIGHT = true;
#endif // _DEBUG
}
void SetFLASHLIGHTDEPTHFILTERMODE( int i )
{
Assert( i >= 0 && i <= 2 );
m_nFLASHLIGHTDEPTHFILTERMODE = i;
#ifdef _DEBUG
m_bFLASHLIGHTDEPTHFILTERMODE = true;
#endif // _DEBUG
}
void SetFASTPATH_NOBUMP( int i )
{
Assert( i >= 0 && i <= 1 );
m_nFASTPATH_NOBUMP = i;
#ifdef _DEBUG
m_bFASTPATH_NOBUMP = true;
#endif // _DEBUG
}
void SetBLENDTINTBYBASEALPHA( int i )
{
Assert( i >= 0 && i <= 1 );
m_nBLENDTINTBYBASEALPHA = i;
#ifdef _DEBUG
m_bBLENDTINTBYBASEALPHA = true;
#endif // _DEBUG
}
skin_ps20b_Static_Index()
{
m_nCONVERT_TO_SRGB = 0;
m_nCUBEMAP = 0;
m_nSELFILLUM = 0;
m_nSELFILLUMFRESNEL = 0;
m_nFLASHLIGHT = 0;
m_nLIGHTWARPTEXTURE = 0;
m_nPHONGWARPTEXTURE = 0;
m_nWRINKLEMAP = 0;
m_nDETAIL_BLEND_MODE = 0;
m_nDETAILTEXTURE = 0;
m_nRIMLIGHT = 0;
m_nFLASHLIGHTDEPTHFILTERMODE = 0;
m_nFASTPATH_NOBUMP = 0;
m_nBLENDTINTBYBASEALPHA = 0;
#ifdef _DEBUG
m_bCONVERT_TO_SRGB = false;
m_bCUBEMAP = false;
m_bSELFILLUM = false;
m_bSELFILLUMFRESNEL = false;
m_bFLASHLIGHT = false;
m_bLIGHTWARPTEXTURE = false;
m_bPHONGWARPTEXTURE = false;
m_bWRINKLEMAP = false;
m_bDETAIL_BLEND_MODE = false;
m_bDETAILTEXTURE = false;
m_bRIMLIGHT = false;
m_bFLASHLIGHTDEPTHFILTERMODE = false;
m_bFASTPATH_NOBUMP = false;
m_bBLENDTINTBYBASEALPHA = false;
#endif // _DEBUG
}
int GetIndex() const
{
Assert( m_bCONVERT_TO_SRGB && m_bCUBEMAP && m_bSELFILLUM && m_bSELFILLUMFRESNEL && m_bFLASHLIGHT && m_bLIGHTWARPTEXTURE && m_bPHONGWARPTEXTURE && m_bWRINKLEMAP && m_bDETAIL_BLEND_MODE && m_bDETAILTEXTURE && m_bRIMLIGHT && m_bFLASHLIGHTDEPTHFILTERMODE && m_bFASTPATH_NOBUMP && m_bBLENDTINTBYBASEALPHA );
return ( 80 * m_nCONVERT_TO_SRGB ) + ( 80 * m_nCUBEMAP ) + ( 160 * m_nSELFILLUM ) + ( 320 * m_nSELFILLUMFRESNEL ) + ( 640 * m_nFLASHLIGHT ) + ( 1280 * m_nLIGHTWARPTEXTURE ) + ( 2560 * m_nPHONGWARPTEXTURE ) + ( 5120 * m_nWRINKLEMAP ) + ( 10240 * m_nDETAIL_BLEND_MODE ) + ( 71680 * m_nDETAILTEXTURE ) + ( 143360 * m_nRIMLIGHT ) + ( 286720 * m_nFLASHLIGHTDEPTHFILTERMODE ) + ( 860160 * m_nFASTPATH_NOBUMP ) + ( 1720320 * m_nBLENDTINTBYBASEALPHA ) + 0;
}
};
#define shaderStaticTest_skin_ps20b psh_forgot_to_set_static_CONVERT_TO_SRGB + psh_forgot_to_set_static_CUBEMAP + psh_forgot_to_set_static_SELFILLUM + psh_forgot_to_set_static_SELFILLUMFRESNEL + psh_forgot_to_set_static_FLASHLIGHT + psh_forgot_to_set_static_LIGHTWARPTEXTURE + psh_forgot_to_set_static_PHONGWARPTEXTURE + psh_forgot_to_set_static_WRINKLEMAP + psh_forgot_to_set_static_DETAIL_BLEND_MODE + psh_forgot_to_set_static_DETAILTEXTURE + psh_forgot_to_set_static_RIMLIGHT + psh_forgot_to_set_static_FLASHLIGHTDEPTHFILTERMODE + psh_forgot_to_set_static_FASTPATH_NOBUMP + psh_forgot_to_set_static_BLENDTINTBYBASEALPHA
class skin_ps20b_Dynamic_Index
{
unsigned int m_nWRITEWATERFOGTODESTALPHA : 2;
unsigned int m_nPIXELFOGTYPE : 2;
unsigned int m_nNUM_LIGHTS : 3;
unsigned int m_nWRITE_DEPTH_TO_DESTALPHA : 2;
unsigned int m_nFLASHLIGHTSHADOWS : 2;
#ifdef _DEBUG
bool m_bWRITEWATERFOGTODESTALPHA : 1;
bool m_bPIXELFOGTYPE : 1;
bool m_bNUM_LIGHTS : 1;
bool m_bWRITE_DEPTH_TO_DESTALPHA : 1;
bool m_bFLASHLIGHTSHADOWS : 1;
#endif // _DEBUG
public:
void SetWRITEWATERFOGTODESTALPHA( int i )
{
Assert( i >= 0 && i <= 1 );
m_nWRITEWATERFOGTODESTALPHA = i;
#ifdef _DEBUG
m_bWRITEWATERFOGTODESTALPHA = true;
#endif // _DEBUG
}
void SetPIXELFOGTYPE( int i )
{
Assert( i >= 0 && i <= 1 );
m_nPIXELFOGTYPE = i;
#ifdef _DEBUG
m_bPIXELFOGTYPE = true;
#endif // _DEBUG
}
void SetNUM_LIGHTS( int i )
{
Assert( i >= 0 && i <= 4 );
m_nNUM_LIGHTS = i;
#ifdef _DEBUG
m_bNUM_LIGHTS = true;
#endif // _DEBUG
}
void SetWRITE_DEPTH_TO_DESTALPHA( int i )
{
Assert( i >= 0 && i <= 1 );
m_nWRITE_DEPTH_TO_DESTALPHA = i;
#ifdef _DEBUG
m_bWRITE_DEPTH_TO_DESTALPHA = true;
#endif // _DEBUG
}
void SetFLASHLIGHTSHADOWS( int i )
{
Assert( i >= 0 && i <= 1 );
m_nFLASHLIGHTSHADOWS = i;
#ifdef _DEBUG
m_bFLASHLIGHTSHADOWS = true;
#endif // _DEBUG
}
skin_ps20b_Dynamic_Index()
{
m_nWRITEWATERFOGTODESTALPHA = 0;
m_nPIXELFOGTYPE = 0;
m_nNUM_LIGHTS = 0;
m_nWRITE_DEPTH_TO_DESTALPHA = 0;
m_nFLASHLIGHTSHADOWS = 0;
#ifdef _DEBUG
m_bWRITEWATERFOGTODESTALPHA = false;
m_bPIXELFOGTYPE = false;
m_bNUM_LIGHTS = false;
m_bWRITE_DEPTH_TO_DESTALPHA = false;
m_bFLASHLIGHTSHADOWS = false;
#endif // _DEBUG
}
int GetIndex() const
{
Assert( m_bWRITEWATERFOGTODESTALPHA && m_bPIXELFOGTYPE && m_bNUM_LIGHTS && m_bWRITE_DEPTH_TO_DESTALPHA && m_bFLASHLIGHTSHADOWS );
return ( 1 * m_nWRITEWATERFOGTODESTALPHA ) + ( 2 * m_nPIXELFOGTYPE ) + ( 4 * m_nNUM_LIGHTS ) + ( 20 * m_nWRITE_DEPTH_TO_DESTALPHA ) + ( 40 * m_nFLASHLIGHTSHADOWS ) + 0;
}
};
#define shaderDynamicTest_skin_ps20b psh_forgot_to_set_dynamic_WRITEWATERFOGTODESTALPHA + psh_forgot_to_set_dynamic_PIXELFOGTYPE + psh_forgot_to_set_dynamic_NUM_LIGHTS + psh_forgot_to_set_dynamic_WRITE_DEPTH_TO_DESTALPHA + psh_forgot_to_set_dynamic_FLASHLIGHTSHADOWS
#endif // SKIN_PS20B_H
+322 -537
View File
@@ -1,537 +1,322 @@
#include "shaderlib/cshader.h"
class skin_ps30_Static_Index
{
private:
int m_nCONVERT_TO_SRGB;
#ifdef _DEBUG
bool m_bCONVERT_TO_SRGB;
#endif
public:
void SetCONVERT_TO_SRGB( int i )
{
Assert( i >= 0 && i <= 0 );
m_nCONVERT_TO_SRGB = i;
#ifdef _DEBUG
m_bCONVERT_TO_SRGB = true;
#endif
}
void SetCONVERT_TO_SRGB( bool i )
{
m_nCONVERT_TO_SRGB = i ? 1 : 0;
#ifdef _DEBUG
m_bCONVERT_TO_SRGB = true;
#endif
}
private:
int m_nCUBEMAP;
#ifdef _DEBUG
bool m_bCUBEMAP;
#endif
public:
void SetCUBEMAP( int i )
{
Assert( i >= 0 && i <= 1 );
m_nCUBEMAP = i;
#ifdef _DEBUG
m_bCUBEMAP = true;
#endif
}
void SetCUBEMAP( bool i )
{
m_nCUBEMAP = i ? 1 : 0;
#ifdef _DEBUG
m_bCUBEMAP = true;
#endif
}
private:
int m_nSELFILLUM;
#ifdef _DEBUG
bool m_bSELFILLUM;
#endif
public:
void SetSELFILLUM( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSELFILLUM = i;
#ifdef _DEBUG
m_bSELFILLUM = true;
#endif
}
void SetSELFILLUM( bool i )
{
m_nSELFILLUM = i ? 1 : 0;
#ifdef _DEBUG
m_bSELFILLUM = true;
#endif
}
private:
int m_nSELFILLUMFRESNEL;
#ifdef _DEBUG
bool m_bSELFILLUMFRESNEL;
#endif
public:
void SetSELFILLUMFRESNEL( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSELFILLUMFRESNEL = i;
#ifdef _DEBUG
m_bSELFILLUMFRESNEL = true;
#endif
}
void SetSELFILLUMFRESNEL( bool i )
{
m_nSELFILLUMFRESNEL = i ? 1 : 0;
#ifdef _DEBUG
m_bSELFILLUMFRESNEL = true;
#endif
}
private:
int m_nFLASHLIGHT;
#ifdef _DEBUG
bool m_bFLASHLIGHT;
#endif
public:
void SetFLASHLIGHT( int i )
{
Assert( i >= 0 && i <= 1 );
m_nFLASHLIGHT = i;
#ifdef _DEBUG
m_bFLASHLIGHT = true;
#endif
}
void SetFLASHLIGHT( bool i )
{
m_nFLASHLIGHT = i ? 1 : 0;
#ifdef _DEBUG
m_bFLASHLIGHT = true;
#endif
}
private:
int m_nLIGHTWARPTEXTURE;
#ifdef _DEBUG
bool m_bLIGHTWARPTEXTURE;
#endif
public:
void SetLIGHTWARPTEXTURE( int i )
{
Assert( i >= 0 && i <= 1 );
m_nLIGHTWARPTEXTURE = i;
#ifdef _DEBUG
m_bLIGHTWARPTEXTURE = true;
#endif
}
void SetLIGHTWARPTEXTURE( bool i )
{
m_nLIGHTWARPTEXTURE = i ? 1 : 0;
#ifdef _DEBUG
m_bLIGHTWARPTEXTURE = true;
#endif
}
private:
int m_nPHONGWARPTEXTURE;
#ifdef _DEBUG
bool m_bPHONGWARPTEXTURE;
#endif
public:
void SetPHONGWARPTEXTURE( int i )
{
Assert( i >= 0 && i <= 1 );
m_nPHONGWARPTEXTURE = i;
#ifdef _DEBUG
m_bPHONGWARPTEXTURE = true;
#endif
}
void SetPHONGWARPTEXTURE( bool i )
{
m_nPHONGWARPTEXTURE = i ? 1 : 0;
#ifdef _DEBUG
m_bPHONGWARPTEXTURE = true;
#endif
}
private:
int m_nWRINKLEMAP;
#ifdef _DEBUG
bool m_bWRINKLEMAP;
#endif
public:
void SetWRINKLEMAP( int i )
{
Assert( i >= 0 && i <= 1 );
m_nWRINKLEMAP = i;
#ifdef _DEBUG
m_bWRINKLEMAP = true;
#endif
}
void SetWRINKLEMAP( bool i )
{
m_nWRINKLEMAP = i ? 1 : 0;
#ifdef _DEBUG
m_bWRINKLEMAP = true;
#endif
}
private:
int m_nDETAIL_BLEND_MODE;
#ifdef _DEBUG
bool m_bDETAIL_BLEND_MODE;
#endif
public:
void SetDETAIL_BLEND_MODE( int i )
{
Assert( i >= 0 && i <= 6 );
m_nDETAIL_BLEND_MODE = i;
#ifdef _DEBUG
m_bDETAIL_BLEND_MODE = true;
#endif
}
void SetDETAIL_BLEND_MODE( bool i )
{
m_nDETAIL_BLEND_MODE = i ? 1 : 0;
#ifdef _DEBUG
m_bDETAIL_BLEND_MODE = true;
#endif
}
private:
int m_nDETAILTEXTURE;
#ifdef _DEBUG
bool m_bDETAILTEXTURE;
#endif
public:
void SetDETAILTEXTURE( int i )
{
Assert( i >= 0 && i <= 1 );
m_nDETAILTEXTURE = i;
#ifdef _DEBUG
m_bDETAILTEXTURE = true;
#endif
}
void SetDETAILTEXTURE( bool i )
{
m_nDETAILTEXTURE = i ? 1 : 0;
#ifdef _DEBUG
m_bDETAILTEXTURE = true;
#endif
}
private:
int m_nRIMLIGHT;
#ifdef _DEBUG
bool m_bRIMLIGHT;
#endif
public:
void SetRIMLIGHT( int i )
{
Assert( i >= 0 && i <= 1 );
m_nRIMLIGHT = i;
#ifdef _DEBUG
m_bRIMLIGHT = true;
#endif
}
void SetRIMLIGHT( bool i )
{
m_nRIMLIGHT = i ? 1 : 0;
#ifdef _DEBUG
m_bRIMLIGHT = true;
#endif
}
private:
int m_nFLASHLIGHTDEPTHFILTERMODE;
#ifdef _DEBUG
bool m_bFLASHLIGHTDEPTHFILTERMODE;
#endif
public:
void SetFLASHLIGHTDEPTHFILTERMODE( int i )
{
Assert( i >= 0 && i <= 2 );
m_nFLASHLIGHTDEPTHFILTERMODE = i;
#ifdef _DEBUG
m_bFLASHLIGHTDEPTHFILTERMODE = true;
#endif
}
void SetFLASHLIGHTDEPTHFILTERMODE( bool i )
{
m_nFLASHLIGHTDEPTHFILTERMODE = i ? 1 : 0;
#ifdef _DEBUG
m_bFLASHLIGHTDEPTHFILTERMODE = true;
#endif
}
private:
int m_nFASTPATH_NOBUMP;
#ifdef _DEBUG
bool m_bFASTPATH_NOBUMP;
#endif
public:
void SetFASTPATH_NOBUMP( int i )
{
Assert( i >= 0 && i <= 1 );
m_nFASTPATH_NOBUMP = i;
#ifdef _DEBUG
m_bFASTPATH_NOBUMP = true;
#endif
}
void SetFASTPATH_NOBUMP( bool i )
{
m_nFASTPATH_NOBUMP = i ? 1 : 0;
#ifdef _DEBUG
m_bFASTPATH_NOBUMP = true;
#endif
}
private:
int m_nBLENDTINTBYBASEALPHA;
#ifdef _DEBUG
bool m_bBLENDTINTBYBASEALPHA;
#endif
public:
void SetBLENDTINTBYBASEALPHA( int i )
{
Assert( i >= 0 && i <= 1 );
m_nBLENDTINTBYBASEALPHA = i;
#ifdef _DEBUG
m_bBLENDTINTBYBASEALPHA = true;
#endif
}
void SetBLENDTINTBYBASEALPHA( bool i )
{
m_nBLENDTINTBYBASEALPHA = i ? 1 : 0;
#ifdef _DEBUG
m_bBLENDTINTBYBASEALPHA = true;
#endif
}
public:
skin_ps30_Static_Index( )
{
#ifdef _DEBUG
m_bCONVERT_TO_SRGB = false;
#endif // _DEBUG
m_nCONVERT_TO_SRGB = 0;
#ifdef _DEBUG
m_bCUBEMAP = false;
#endif // _DEBUG
m_nCUBEMAP = 0;
#ifdef _DEBUG
m_bSELFILLUM = false;
#endif // _DEBUG
m_nSELFILLUM = 0;
#ifdef _DEBUG
m_bSELFILLUMFRESNEL = false;
#endif // _DEBUG
m_nSELFILLUMFRESNEL = 0;
#ifdef _DEBUG
m_bFLASHLIGHT = false;
#endif // _DEBUG
m_nFLASHLIGHT = 0;
#ifdef _DEBUG
m_bLIGHTWARPTEXTURE = false;
#endif // _DEBUG
m_nLIGHTWARPTEXTURE = 0;
#ifdef _DEBUG
m_bPHONGWARPTEXTURE = false;
#endif // _DEBUG
m_nPHONGWARPTEXTURE = 0;
#ifdef _DEBUG
m_bWRINKLEMAP = false;
#endif // _DEBUG
m_nWRINKLEMAP = 0;
#ifdef _DEBUG
m_bDETAIL_BLEND_MODE = false;
#endif // _DEBUG
m_nDETAIL_BLEND_MODE = 0;
#ifdef _DEBUG
m_bDETAILTEXTURE = false;
#endif // _DEBUG
m_nDETAILTEXTURE = 0;
#ifdef _DEBUG
m_bRIMLIGHT = false;
#endif // _DEBUG
m_nRIMLIGHT = 0;
#ifdef _DEBUG
m_bFLASHLIGHTDEPTHFILTERMODE = false;
#endif // _DEBUG
m_nFLASHLIGHTDEPTHFILTERMODE = 0;
#ifdef _DEBUG
m_bFASTPATH_NOBUMP = false;
#endif // _DEBUG
m_nFASTPATH_NOBUMP = 0;
#ifdef _DEBUG
m_bBLENDTINTBYBASEALPHA = false;
#endif // _DEBUG
m_nBLENDTINTBYBASEALPHA = 0;
}
int GetIndex()
{
// Asserts to make sure that we aren't using any skipped combinations.
// Asserts to make sure that we are setting all of the combination vars.
#ifdef _DEBUG
bool bAllStaticVarsDefined = m_bCONVERT_TO_SRGB && m_bCUBEMAP && m_bSELFILLUM && m_bSELFILLUMFRESNEL && m_bFLASHLIGHT && m_bLIGHTWARPTEXTURE && m_bPHONGWARPTEXTURE && m_bWRINKLEMAP && m_bDETAIL_BLEND_MODE && m_bDETAILTEXTURE && m_bRIMLIGHT && m_bFLASHLIGHTDEPTHFILTERMODE && m_bFASTPATH_NOBUMP && m_bBLENDTINTBYBASEALPHA;
Assert( bAllStaticVarsDefined );
#endif // _DEBUG
return ( 160 * m_nCONVERT_TO_SRGB ) + ( 160 * m_nCUBEMAP ) + ( 320 * m_nSELFILLUM ) + ( 640 * m_nSELFILLUMFRESNEL ) + ( 1280 * m_nFLASHLIGHT ) + ( 2560 * m_nLIGHTWARPTEXTURE ) + ( 5120 * m_nPHONGWARPTEXTURE ) + ( 10240 * m_nWRINKLEMAP ) + ( 20480 * m_nDETAIL_BLEND_MODE ) + ( 143360 * m_nDETAILTEXTURE ) + ( 286720 * m_nRIMLIGHT ) + ( 573440 * m_nFLASHLIGHTDEPTHFILTERMODE ) + ( 1720320 * m_nFASTPATH_NOBUMP ) + ( 3440640 * m_nBLENDTINTBYBASEALPHA ) + 0;
}
};
#define shaderStaticTest_skin_ps30 psh_forgot_to_set_static_CONVERT_TO_SRGB + psh_forgot_to_set_static_CUBEMAP + psh_forgot_to_set_static_SELFILLUM + psh_forgot_to_set_static_SELFILLUMFRESNEL + psh_forgot_to_set_static_FLASHLIGHT + psh_forgot_to_set_static_LIGHTWARPTEXTURE + psh_forgot_to_set_static_PHONGWARPTEXTURE + psh_forgot_to_set_static_WRINKLEMAP + psh_forgot_to_set_static_DETAIL_BLEND_MODE + psh_forgot_to_set_static_DETAILTEXTURE + psh_forgot_to_set_static_RIMLIGHT + psh_forgot_to_set_static_FLASHLIGHTDEPTHFILTERMODE + psh_forgot_to_set_static_FASTPATH_NOBUMP + psh_forgot_to_set_static_BLENDTINTBYBASEALPHA + 0
class skin_ps30_Dynamic_Index
{
private:
int m_nWRITEWATERFOGTODESTALPHA;
#ifdef _DEBUG
bool m_bWRITEWATERFOGTODESTALPHA;
#endif
public:
void SetWRITEWATERFOGTODESTALPHA( int i )
{
Assert( i >= 0 && i <= 1 );
m_nWRITEWATERFOGTODESTALPHA = i;
#ifdef _DEBUG
m_bWRITEWATERFOGTODESTALPHA = true;
#endif
}
void SetWRITEWATERFOGTODESTALPHA( bool i )
{
m_nWRITEWATERFOGTODESTALPHA = i ? 1 : 0;
#ifdef _DEBUG
m_bWRITEWATERFOGTODESTALPHA = true;
#endif
}
private:
int m_nPIXELFOGTYPE;
#ifdef _DEBUG
bool m_bPIXELFOGTYPE;
#endif
public:
void SetPIXELFOGTYPE( int i )
{
Assert( i >= 0 && i <= 1 );
m_nPIXELFOGTYPE = i;
#ifdef _DEBUG
m_bPIXELFOGTYPE = true;
#endif
}
void SetPIXELFOGTYPE( bool i )
{
m_nPIXELFOGTYPE = i ? 1 : 0;
#ifdef _DEBUG
m_bPIXELFOGTYPE = true;
#endif
}
private:
int m_nNUM_LIGHTS;
#ifdef _DEBUG
bool m_bNUM_LIGHTS;
#endif
public:
void SetNUM_LIGHTS( int i )
{
Assert( i >= 0 && i <= 4 );
m_nNUM_LIGHTS = i;
#ifdef _DEBUG
m_bNUM_LIGHTS = true;
#endif
}
void SetNUM_LIGHTS( bool i )
{
m_nNUM_LIGHTS = i ? 1 : 0;
#ifdef _DEBUG
m_bNUM_LIGHTS = true;
#endif
}
private:
int m_nWRITE_DEPTH_TO_DESTALPHA;
#ifdef _DEBUG
bool m_bWRITE_DEPTH_TO_DESTALPHA;
#endif
public:
void SetWRITE_DEPTH_TO_DESTALPHA( int i )
{
Assert( i >= 0 && i <= 1 );
m_nWRITE_DEPTH_TO_DESTALPHA = i;
#ifdef _DEBUG
m_bWRITE_DEPTH_TO_DESTALPHA = true;
#endif
}
void SetWRITE_DEPTH_TO_DESTALPHA( bool i )
{
m_nWRITE_DEPTH_TO_DESTALPHA = i ? 1 : 0;
#ifdef _DEBUG
m_bWRITE_DEPTH_TO_DESTALPHA = true;
#endif
}
private:
int m_nFLASHLIGHTSHADOWS;
#ifdef _DEBUG
bool m_bFLASHLIGHTSHADOWS;
#endif
public:
void SetFLASHLIGHTSHADOWS( int i )
{
Assert( i >= 0 && i <= 1 );
m_nFLASHLIGHTSHADOWS = i;
#ifdef _DEBUG
m_bFLASHLIGHTSHADOWS = true;
#endif
}
void SetFLASHLIGHTSHADOWS( bool i )
{
m_nFLASHLIGHTSHADOWS = i ? 1 : 0;
#ifdef _DEBUG
m_bFLASHLIGHTSHADOWS = true;
#endif
}
private:
int m_nPHONG_USE_EXPONENT_FACTOR;
#ifdef _DEBUG
bool m_bPHONG_USE_EXPONENT_FACTOR;
#endif
public:
void SetPHONG_USE_EXPONENT_FACTOR( int i )
{
Assert( i >= 0 && i <= 1 );
m_nPHONG_USE_EXPONENT_FACTOR = i;
#ifdef _DEBUG
m_bPHONG_USE_EXPONENT_FACTOR = true;
#endif
}
void SetPHONG_USE_EXPONENT_FACTOR( bool i )
{
m_nPHONG_USE_EXPONENT_FACTOR = i ? 1 : 0;
#ifdef _DEBUG
m_bPHONG_USE_EXPONENT_FACTOR = true;
#endif
}
public:
skin_ps30_Dynamic_Index()
{
#ifdef _DEBUG
m_bWRITEWATERFOGTODESTALPHA = false;
#endif // _DEBUG
m_nWRITEWATERFOGTODESTALPHA = 0;
#ifdef _DEBUG
m_bPIXELFOGTYPE = false;
#endif // _DEBUG
m_nPIXELFOGTYPE = 0;
#ifdef _DEBUG
m_bNUM_LIGHTS = false;
#endif // _DEBUG
m_nNUM_LIGHTS = 0;
#ifdef _DEBUG
m_bWRITE_DEPTH_TO_DESTALPHA = false;
#endif // _DEBUG
m_nWRITE_DEPTH_TO_DESTALPHA = 0;
#ifdef _DEBUG
m_bFLASHLIGHTSHADOWS = false;
#endif // _DEBUG
m_nFLASHLIGHTSHADOWS = 0;
#ifdef _DEBUG
m_bPHONG_USE_EXPONENT_FACTOR = false;
#endif // _DEBUG
m_nPHONG_USE_EXPONENT_FACTOR = 0;
}
int GetIndex()
{
// Asserts to make sure that we aren't using any skipped combinations.
// Asserts to make sure that we are setting all of the combination vars.
#ifdef _DEBUG
bool bAllDynamicVarsDefined = m_bWRITEWATERFOGTODESTALPHA && m_bPIXELFOGTYPE && m_bNUM_LIGHTS && m_bWRITE_DEPTH_TO_DESTALPHA && m_bFLASHLIGHTSHADOWS && m_bPHONG_USE_EXPONENT_FACTOR;
Assert( bAllDynamicVarsDefined );
#endif // _DEBUG
return ( 1 * m_nWRITEWATERFOGTODESTALPHA ) + ( 2 * m_nPIXELFOGTYPE ) + ( 4 * m_nNUM_LIGHTS ) + ( 20 * m_nWRITE_DEPTH_TO_DESTALPHA ) + ( 40 * m_nFLASHLIGHTSHADOWS ) + ( 80 * m_nPHONG_USE_EXPONENT_FACTOR ) + 0;
}
};
#define shaderDynamicTest_skin_ps30 psh_forgot_to_set_dynamic_WRITEWATERFOGTODESTALPHA + psh_forgot_to_set_dynamic_PIXELFOGTYPE + psh_forgot_to_set_dynamic_NUM_LIGHTS + psh_forgot_to_set_dynamic_WRITE_DEPTH_TO_DESTALPHA + psh_forgot_to_set_dynamic_FLASHLIGHTSHADOWS + psh_forgot_to_set_dynamic_PHONG_USE_EXPONENT_FACTOR + 0
// ALL SKIP STATEMENTS THAT AFFECT THIS SHADER!!!
// ($PIXELFOGTYPE == 0) && ($WRITEWATERFOGTODESTALPHA != 0)
// (! $DETAILTEXTURE) && ( $DETAIL_BLEND_MODE != 0 )
// ( $FLASHLIGHT == 0 ) && ( $FLASHLIGHTSHADOWS == 1 )
// ( $FLASHLIGHT == 0 ) && ( $FLASHLIGHTDEPTHFILTERMODE != 0 )
// ( $SELFILLUM == 0 ) && ( $SELFILLUMFRESNEL == 1 )
// ( $FLASHLIGHT == 1 ) && ( $SELFILLUMFRESNEL == 1 )
// ( $FLASHLIGHT == 1 ) && ( $SELFILLUM == 1 )
// ( $BLENDTINTBYBASEALPHA ) && ( $SELFILLUM )
// $FASTPATH_NOBUMP && ( $RIMLIGHT || $DETAILTEXTURE || $PHONGWARPTEXTURE || $SELFILLUM || $BLENDTINTBYBASEALPHA )
// defined $HDRTYPE && defined $HDRENABLED && !$HDRTYPE && $HDRENABLED
// defined $PIXELFOGTYPE && defined $WRITEWATERFOGTODESTALPHA && ( $PIXELFOGTYPE != 1 ) && $WRITEWATERFOGTODESTALPHA
// defined $LIGHTING_PREVIEW && defined $HDRTYPE && $LIGHTING_PREVIEW && $HDRTYPE != 0
// defined $LIGHTING_PREVIEW && defined $FASTPATHENVMAPTINT && $LIGHTING_PREVIEW && $FASTPATHENVMAPTINT
// defined $LIGHTING_PREVIEW && defined $FASTPATHENVMAPCONTRAST && $LIGHTING_PREVIEW && $FASTPATHENVMAPCONTRAST
// defined $LIGHTING_PREVIEW && defined $FASTPATH && $LIGHTING_PREVIEW && $FASTPATH
// ($FLASHLIGHT || $FLASHLIGHTSHADOWS) && $LIGHTING_PREVIEW
// defined $HDRTYPE && defined $HDRENABLED && !$HDRTYPE && $HDRENABLED
// defined $PIXELFOGTYPE && defined $WRITEWATERFOGTODESTALPHA && ( $PIXELFOGTYPE != 1 ) && $WRITEWATERFOGTODESTALPHA
// defined $LIGHTING_PREVIEW && defined $HDRTYPE && $LIGHTING_PREVIEW && $HDRTYPE != 0
// defined $LIGHTING_PREVIEW && defined $FASTPATHENVMAPTINT && $LIGHTING_PREVIEW && $FASTPATHENVMAPTINT
// defined $LIGHTING_PREVIEW && defined $FASTPATHENVMAPCONTRAST && $LIGHTING_PREVIEW && $FASTPATHENVMAPCONTRAST
// defined $LIGHTING_PREVIEW && defined $FASTPATH && $LIGHTING_PREVIEW && $FASTPATH
// ($FLASHLIGHT || $FLASHLIGHTSHADOWS) && $LIGHTING_PREVIEW
#ifndef SKIN_PS30_H
#define SKIN_PS30_H
#include "shaderapi/ishaderapi.h"
#include "shaderapi/ishadershadow.h"
#include "materialsystem/imaterialvar.h"
class skin_ps30_Static_Index
{
unsigned int m_nCONVERT_TO_SRGB : 1;
unsigned int m_nCUBEMAP : 2;
unsigned int m_nSELFILLUM : 2;
unsigned int m_nSELFILLUMFRESNEL : 2;
unsigned int m_nFLASHLIGHT : 2;
unsigned int m_nLIGHTWARPTEXTURE : 2;
unsigned int m_nPHONGWARPTEXTURE : 2;
unsigned int m_nWRINKLEMAP : 2;
unsigned int m_nDETAIL_BLEND_MODE : 3;
unsigned int m_nDETAILTEXTURE : 2;
unsigned int m_nRIMLIGHT : 2;
unsigned int m_nFLASHLIGHTDEPTHFILTERMODE : 2;
unsigned int m_nFASTPATH_NOBUMP : 2;
unsigned int m_nBLENDTINTBYBASEALPHA : 2;
#ifdef _DEBUG
bool m_bCONVERT_TO_SRGB : 1;
bool m_bCUBEMAP : 1;
bool m_bSELFILLUM : 1;
bool m_bSELFILLUMFRESNEL : 1;
bool m_bFLASHLIGHT : 1;
bool m_bLIGHTWARPTEXTURE : 1;
bool m_bPHONGWARPTEXTURE : 1;
bool m_bWRINKLEMAP : 1;
bool m_bDETAIL_BLEND_MODE : 1;
bool m_bDETAILTEXTURE : 1;
bool m_bRIMLIGHT : 1;
bool m_bFLASHLIGHTDEPTHFILTERMODE : 1;
bool m_bFASTPATH_NOBUMP : 1;
bool m_bBLENDTINTBYBASEALPHA : 1;
#endif // _DEBUG
public:
void SetCONVERT_TO_SRGB( int i )
{
Assert( i >= 0 && i <= 0 );
m_nCONVERT_TO_SRGB = i;
#ifdef _DEBUG
m_bCONVERT_TO_SRGB = true;
#endif // _DEBUG
}
void SetCUBEMAP( int i )
{
Assert( i >= 0 && i <= 1 );
m_nCUBEMAP = i;
#ifdef _DEBUG
m_bCUBEMAP = true;
#endif // _DEBUG
}
void SetSELFILLUM( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSELFILLUM = i;
#ifdef _DEBUG
m_bSELFILLUM = true;
#endif // _DEBUG
}
void SetSELFILLUMFRESNEL( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSELFILLUMFRESNEL = i;
#ifdef _DEBUG
m_bSELFILLUMFRESNEL = true;
#endif // _DEBUG
}
void SetFLASHLIGHT( int i )
{
Assert( i >= 0 && i <= 1 );
m_nFLASHLIGHT = i;
#ifdef _DEBUG
m_bFLASHLIGHT = true;
#endif // _DEBUG
}
void SetLIGHTWARPTEXTURE( int i )
{
Assert( i >= 0 && i <= 1 );
m_nLIGHTWARPTEXTURE = i;
#ifdef _DEBUG
m_bLIGHTWARPTEXTURE = true;
#endif // _DEBUG
}
void SetPHONGWARPTEXTURE( int i )
{
Assert( i >= 0 && i <= 1 );
m_nPHONGWARPTEXTURE = i;
#ifdef _DEBUG
m_bPHONGWARPTEXTURE = true;
#endif // _DEBUG
}
void SetWRINKLEMAP( int i )
{
Assert( i >= 0 && i <= 1 );
m_nWRINKLEMAP = i;
#ifdef _DEBUG
m_bWRINKLEMAP = true;
#endif // _DEBUG
}
void SetDETAIL_BLEND_MODE( int i )
{
Assert( i >= 0 && i <= 6 );
m_nDETAIL_BLEND_MODE = i;
#ifdef _DEBUG
m_bDETAIL_BLEND_MODE = true;
#endif // _DEBUG
}
void SetDETAILTEXTURE( int i )
{
Assert( i >= 0 && i <= 1 );
m_nDETAILTEXTURE = i;
#ifdef _DEBUG
m_bDETAILTEXTURE = true;
#endif // _DEBUG
}
void SetRIMLIGHT( int i )
{
Assert( i >= 0 && i <= 1 );
m_nRIMLIGHT = i;
#ifdef _DEBUG
m_bRIMLIGHT = true;
#endif // _DEBUG
}
void SetFLASHLIGHTDEPTHFILTERMODE( int i )
{
Assert( i >= 0 && i <= 2 );
m_nFLASHLIGHTDEPTHFILTERMODE = i;
#ifdef _DEBUG
m_bFLASHLIGHTDEPTHFILTERMODE = true;
#endif // _DEBUG
}
void SetFASTPATH_NOBUMP( int i )
{
Assert( i >= 0 && i <= 1 );
m_nFASTPATH_NOBUMP = i;
#ifdef _DEBUG
m_bFASTPATH_NOBUMP = true;
#endif // _DEBUG
}
void SetBLENDTINTBYBASEALPHA( int i )
{
Assert( i >= 0 && i <= 1 );
m_nBLENDTINTBYBASEALPHA = i;
#ifdef _DEBUG
m_bBLENDTINTBYBASEALPHA = true;
#endif // _DEBUG
}
skin_ps30_Static_Index()
{
m_nCONVERT_TO_SRGB = 0;
m_nCUBEMAP = 0;
m_nSELFILLUM = 0;
m_nSELFILLUMFRESNEL = 0;
m_nFLASHLIGHT = 0;
m_nLIGHTWARPTEXTURE = 0;
m_nPHONGWARPTEXTURE = 0;
m_nWRINKLEMAP = 0;
m_nDETAIL_BLEND_MODE = 0;
m_nDETAILTEXTURE = 0;
m_nRIMLIGHT = 0;
m_nFLASHLIGHTDEPTHFILTERMODE = 0;
m_nFASTPATH_NOBUMP = 0;
m_nBLENDTINTBYBASEALPHA = 0;
#ifdef _DEBUG
m_bCONVERT_TO_SRGB = false;
m_bCUBEMAP = false;
m_bSELFILLUM = false;
m_bSELFILLUMFRESNEL = false;
m_bFLASHLIGHT = false;
m_bLIGHTWARPTEXTURE = false;
m_bPHONGWARPTEXTURE = false;
m_bWRINKLEMAP = false;
m_bDETAIL_BLEND_MODE = false;
m_bDETAILTEXTURE = false;
m_bRIMLIGHT = false;
m_bFLASHLIGHTDEPTHFILTERMODE = false;
m_bFASTPATH_NOBUMP = false;
m_bBLENDTINTBYBASEALPHA = false;
#endif // _DEBUG
}
int GetIndex() const
{
Assert( m_bCONVERT_TO_SRGB && m_bCUBEMAP && m_bSELFILLUM && m_bSELFILLUMFRESNEL && m_bFLASHLIGHT && m_bLIGHTWARPTEXTURE && m_bPHONGWARPTEXTURE && m_bWRINKLEMAP && m_bDETAIL_BLEND_MODE && m_bDETAILTEXTURE && m_bRIMLIGHT && m_bFLASHLIGHTDEPTHFILTERMODE && m_bFASTPATH_NOBUMP && m_bBLENDTINTBYBASEALPHA );
return ( 80 * m_nCONVERT_TO_SRGB ) + ( 80 * m_nCUBEMAP ) + ( 160 * m_nSELFILLUM ) + ( 320 * m_nSELFILLUMFRESNEL ) + ( 640 * m_nFLASHLIGHT ) + ( 1280 * m_nLIGHTWARPTEXTURE ) + ( 2560 * m_nPHONGWARPTEXTURE ) + ( 5120 * m_nWRINKLEMAP ) + ( 10240 * m_nDETAIL_BLEND_MODE ) + ( 71680 * m_nDETAILTEXTURE ) + ( 143360 * m_nRIMLIGHT ) + ( 286720 * m_nFLASHLIGHTDEPTHFILTERMODE ) + ( 860160 * m_nFASTPATH_NOBUMP ) + ( 1720320 * m_nBLENDTINTBYBASEALPHA ) + 0;
}
};
#define shaderStaticTest_skin_ps30 psh_forgot_to_set_static_CONVERT_TO_SRGB + psh_forgot_to_set_static_CUBEMAP + psh_forgot_to_set_static_SELFILLUM + psh_forgot_to_set_static_SELFILLUMFRESNEL + psh_forgot_to_set_static_FLASHLIGHT + psh_forgot_to_set_static_LIGHTWARPTEXTURE + psh_forgot_to_set_static_PHONGWARPTEXTURE + psh_forgot_to_set_static_WRINKLEMAP + psh_forgot_to_set_static_DETAIL_BLEND_MODE + psh_forgot_to_set_static_DETAILTEXTURE + psh_forgot_to_set_static_RIMLIGHT + psh_forgot_to_set_static_FLASHLIGHTDEPTHFILTERMODE + psh_forgot_to_set_static_FASTPATH_NOBUMP + psh_forgot_to_set_static_BLENDTINTBYBASEALPHA
class skin_ps30_Dynamic_Index
{
unsigned int m_nWRITEWATERFOGTODESTALPHA : 2;
unsigned int m_nPIXELFOGTYPE : 2;
unsigned int m_nNUM_LIGHTS : 3;
unsigned int m_nWRITE_DEPTH_TO_DESTALPHA : 2;
unsigned int m_nFLASHLIGHTSHADOWS : 2;
#ifdef _DEBUG
bool m_bWRITEWATERFOGTODESTALPHA : 1;
bool m_bPIXELFOGTYPE : 1;
bool m_bNUM_LIGHTS : 1;
bool m_bWRITE_DEPTH_TO_DESTALPHA : 1;
bool m_bFLASHLIGHTSHADOWS : 1;
#endif // _DEBUG
public:
void SetWRITEWATERFOGTODESTALPHA( int i )
{
Assert( i >= 0 && i <= 1 );
m_nWRITEWATERFOGTODESTALPHA = i;
#ifdef _DEBUG
m_bWRITEWATERFOGTODESTALPHA = true;
#endif // _DEBUG
}
void SetPIXELFOGTYPE( int i )
{
Assert( i >= 0 && i <= 1 );
m_nPIXELFOGTYPE = i;
#ifdef _DEBUG
m_bPIXELFOGTYPE = true;
#endif // _DEBUG
}
void SetNUM_LIGHTS( int i )
{
Assert( i >= 0 && i <= 4 );
m_nNUM_LIGHTS = i;
#ifdef _DEBUG
m_bNUM_LIGHTS = true;
#endif // _DEBUG
}
void SetWRITE_DEPTH_TO_DESTALPHA( int i )
{
Assert( i >= 0 && i <= 1 );
m_nWRITE_DEPTH_TO_DESTALPHA = i;
#ifdef _DEBUG
m_bWRITE_DEPTH_TO_DESTALPHA = true;
#endif // _DEBUG
}
void SetFLASHLIGHTSHADOWS( int i )
{
Assert( i >= 0 && i <= 1 );
m_nFLASHLIGHTSHADOWS = i;
#ifdef _DEBUG
m_bFLASHLIGHTSHADOWS = true;
#endif // _DEBUG
}
skin_ps30_Dynamic_Index()
{
m_nWRITEWATERFOGTODESTALPHA = 0;
m_nPIXELFOGTYPE = 0;
m_nNUM_LIGHTS = 0;
m_nWRITE_DEPTH_TO_DESTALPHA = 0;
m_nFLASHLIGHTSHADOWS = 0;
#ifdef _DEBUG
m_bWRITEWATERFOGTODESTALPHA = false;
m_bPIXELFOGTYPE = false;
m_bNUM_LIGHTS = false;
m_bWRITE_DEPTH_TO_DESTALPHA = false;
m_bFLASHLIGHTSHADOWS = false;
#endif // _DEBUG
}
int GetIndex() const
{
Assert( m_bWRITEWATERFOGTODESTALPHA && m_bPIXELFOGTYPE && m_bNUM_LIGHTS && m_bWRITE_DEPTH_TO_DESTALPHA && m_bFLASHLIGHTSHADOWS );
return ( 1 * m_nWRITEWATERFOGTODESTALPHA ) + ( 2 * m_nPIXELFOGTYPE ) + ( 4 * m_nNUM_LIGHTS ) + ( 20 * m_nWRITE_DEPTH_TO_DESTALPHA ) + ( 40 * m_nFLASHLIGHTSHADOWS ) + 0;
}
};
#define shaderDynamicTest_skin_ps30 psh_forgot_to_set_dynamic_WRITEWATERFOGTODESTALPHA + psh_forgot_to_set_dynamic_PIXELFOGTYPE + psh_forgot_to_set_dynamic_NUM_LIGHTS + psh_forgot_to_set_dynamic_WRITE_DEPTH_TO_DESTALPHA + psh_forgot_to_set_dynamic_FLASHLIGHTSHADOWS
#endif // SKIN_PS30_H
+132 -187
View File
@@ -1,187 +1,132 @@
#include "shaderlib/cshader.h"
class skin_vs20_Static_Index
{
private:
int m_nUSE_STATIC_CONTROL_FLOW;
#ifdef _DEBUG
bool m_bUSE_STATIC_CONTROL_FLOW;
#endif
public:
void SetUSE_STATIC_CONTROL_FLOW( int i )
{
Assert( i >= 0 && i <= 1 );
m_nUSE_STATIC_CONTROL_FLOW = i;
#ifdef _DEBUG
m_bUSE_STATIC_CONTROL_FLOW = true;
#endif
}
void SetUSE_STATIC_CONTROL_FLOW( bool i )
{
m_nUSE_STATIC_CONTROL_FLOW = i ? 1 : 0;
#ifdef _DEBUG
m_bUSE_STATIC_CONTROL_FLOW = true;
#endif
}
public:
skin_vs20_Static_Index( )
{
#ifdef _DEBUG
m_bUSE_STATIC_CONTROL_FLOW = false;
#endif // _DEBUG
m_nUSE_STATIC_CONTROL_FLOW = 0;
}
int GetIndex()
{
// Asserts to make sure that we aren't using any skipped combinations.
// Asserts to make sure that we are setting all of the combination vars.
#ifdef _DEBUG
bool bAllStaticVarsDefined = m_bUSE_STATIC_CONTROL_FLOW;
Assert( bAllStaticVarsDefined );
#endif // _DEBUG
return ( 48 * m_nUSE_STATIC_CONTROL_FLOW ) + 0;
}
};
#define shaderStaticTest_skin_vs20 vsh_forgot_to_set_static_USE_STATIC_CONTROL_FLOW + 0
class skin_vs20_Dynamic_Index
{
private:
int m_nCOMPRESSED_VERTS;
#ifdef _DEBUG
bool m_bCOMPRESSED_VERTS;
#endif
public:
void SetCOMPRESSED_VERTS( int i )
{
Assert( i >= 0 && i <= 1 );
m_nCOMPRESSED_VERTS = i;
#ifdef _DEBUG
m_bCOMPRESSED_VERTS = true;
#endif
}
void SetCOMPRESSED_VERTS( bool i )
{
m_nCOMPRESSED_VERTS = i ? 1 : 0;
#ifdef _DEBUG
m_bCOMPRESSED_VERTS = true;
#endif
}
private:
int m_nDOWATERFOG;
#ifdef _DEBUG
bool m_bDOWATERFOG;
#endif
public:
void SetDOWATERFOG( int i )
{
Assert( i >= 0 && i <= 1 );
m_nDOWATERFOG = i;
#ifdef _DEBUG
m_bDOWATERFOG = true;
#endif
}
void SetDOWATERFOG( bool i )
{
m_nDOWATERFOG = i ? 1 : 0;
#ifdef _DEBUG
m_bDOWATERFOG = true;
#endif
}
private:
int m_nSKINNING;
#ifdef _DEBUG
bool m_bSKINNING;
#endif
public:
void SetSKINNING( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSKINNING = i;
#ifdef _DEBUG
m_bSKINNING = true;
#endif
}
void SetSKINNING( bool i )
{
m_nSKINNING = i ? 1 : 0;
#ifdef _DEBUG
m_bSKINNING = true;
#endif
}
private:
int m_nLIGHTING_PREVIEW;
#ifdef _DEBUG
bool m_bLIGHTING_PREVIEW;
#endif
public:
void SetLIGHTING_PREVIEW( int i )
{
Assert( i >= 0 && i <= 1 );
m_nLIGHTING_PREVIEW = i;
#ifdef _DEBUG
m_bLIGHTING_PREVIEW = true;
#endif
}
void SetLIGHTING_PREVIEW( bool i )
{
m_nLIGHTING_PREVIEW = i ? 1 : 0;
#ifdef _DEBUG
m_bLIGHTING_PREVIEW = true;
#endif
}
private:
int m_nNUM_LIGHTS;
#ifdef _DEBUG
bool m_bNUM_LIGHTS;
#endif
public:
void SetNUM_LIGHTS( int i )
{
Assert( i >= 0 && i <= 2 );
m_nNUM_LIGHTS = i;
#ifdef _DEBUG
m_bNUM_LIGHTS = true;
#endif
}
void SetNUM_LIGHTS( bool i )
{
m_nNUM_LIGHTS = i ? 1 : 0;
#ifdef _DEBUG
m_bNUM_LIGHTS = true;
#endif
}
public:
skin_vs20_Dynamic_Index()
{
#ifdef _DEBUG
m_bCOMPRESSED_VERTS = false;
#endif // _DEBUG
m_nCOMPRESSED_VERTS = 0;
#ifdef _DEBUG
m_bDOWATERFOG = false;
#endif // _DEBUG
m_nDOWATERFOG = 0;
#ifdef _DEBUG
m_bSKINNING = false;
#endif // _DEBUG
m_nSKINNING = 0;
#ifdef _DEBUG
m_bLIGHTING_PREVIEW = false;
#endif // _DEBUG
m_nLIGHTING_PREVIEW = 0;
#ifdef _DEBUG
m_bNUM_LIGHTS = false;
#endif // _DEBUG
m_nNUM_LIGHTS = 0;
}
int GetIndex()
{
// Asserts to make sure that we aren't using any skipped combinations.
// Asserts to make sure that we are setting all of the combination vars.
#ifdef _DEBUG
bool bAllDynamicVarsDefined = m_bCOMPRESSED_VERTS && m_bDOWATERFOG && m_bSKINNING && m_bLIGHTING_PREVIEW && m_bNUM_LIGHTS;
Assert( bAllDynamicVarsDefined );
#endif // _DEBUG
return ( 1 * m_nCOMPRESSED_VERTS ) + ( 2 * m_nDOWATERFOG ) + ( 4 * m_nSKINNING ) + ( 8 * m_nLIGHTING_PREVIEW ) + ( 16 * m_nNUM_LIGHTS ) + 0;
}
};
#define shaderDynamicTest_skin_vs20 vsh_forgot_to_set_dynamic_COMPRESSED_VERTS + vsh_forgot_to_set_dynamic_DOWATERFOG + vsh_forgot_to_set_dynamic_SKINNING + vsh_forgot_to_set_dynamic_LIGHTING_PREVIEW + vsh_forgot_to_set_dynamic_NUM_LIGHTS + 0
// ALL SKIP STATEMENTS THAT AFFECT THIS SHADER!!!
// $USE_STATIC_CONTROL_FLOW && ( $NUM_LIGHTS > 0 )
// defined $LIGHTING_PREVIEW && defined $FASTPATH && $LIGHTING_PREVIEW && $FASTPATH
#ifndef SKIN_VS20_H
#define SKIN_VS20_H
#include "shaderapi/ishaderapi.h"
#include "shaderapi/ishadershadow.h"
#include "materialsystem/imaterialvar.h"
class skin_vs20_Static_Index
{
unsigned int m_nUSE_STATIC_CONTROL_FLOW : 2;
#ifdef _DEBUG
bool m_bUSE_STATIC_CONTROL_FLOW : 1;
#endif // _DEBUG
public:
void SetUSE_STATIC_CONTROL_FLOW( int i )
{
Assert( i >= 0 && i <= 1 );
m_nUSE_STATIC_CONTROL_FLOW = i;
#ifdef _DEBUG
m_bUSE_STATIC_CONTROL_FLOW = true;
#endif // _DEBUG
}
skin_vs20_Static_Index()
{
m_nUSE_STATIC_CONTROL_FLOW = 0;
#ifdef _DEBUG
m_bUSE_STATIC_CONTROL_FLOW = false;
#endif // _DEBUG
}
int GetIndex() const
{
Assert( m_bUSE_STATIC_CONTROL_FLOW );
return ( 48 * m_nUSE_STATIC_CONTROL_FLOW ) + 0;
}
};
#define shaderStaticTest_skin_vs20 vsh_forgot_to_set_static_USE_STATIC_CONTROL_FLOW
class skin_vs20_Dynamic_Index
{
unsigned int m_nCOMPRESSED_VERTS : 2;
unsigned int m_nDOWATERFOG : 2;
unsigned int m_nSKINNING : 2;
unsigned int m_nLIGHTING_PREVIEW : 2;
unsigned int m_nNUM_LIGHTS : 2;
#ifdef _DEBUG
bool m_bCOMPRESSED_VERTS : 1;
bool m_bDOWATERFOG : 1;
bool m_bSKINNING : 1;
bool m_bLIGHTING_PREVIEW : 1;
bool m_bNUM_LIGHTS : 1;
#endif // _DEBUG
public:
void SetCOMPRESSED_VERTS( int i )
{
Assert( i >= 0 && i <= 1 );
m_nCOMPRESSED_VERTS = i;
#ifdef _DEBUG
m_bCOMPRESSED_VERTS = true;
#endif // _DEBUG
}
void SetDOWATERFOG( int i )
{
Assert( i >= 0 && i <= 1 );
m_nDOWATERFOG = i;
#ifdef _DEBUG
m_bDOWATERFOG = true;
#endif // _DEBUG
}
void SetSKINNING( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSKINNING = i;
#ifdef _DEBUG
m_bSKINNING = true;
#endif // _DEBUG
}
void SetLIGHTING_PREVIEW( int i )
{
Assert( i >= 0 && i <= 1 );
m_nLIGHTING_PREVIEW = i;
#ifdef _DEBUG
m_bLIGHTING_PREVIEW = true;
#endif // _DEBUG
}
void SetNUM_LIGHTS( int i )
{
Assert( i >= 0 && i <= 2 );
m_nNUM_LIGHTS = i;
#ifdef _DEBUG
m_bNUM_LIGHTS = true;
#endif // _DEBUG
}
skin_vs20_Dynamic_Index()
{
m_nCOMPRESSED_VERTS = 0;
m_nDOWATERFOG = 0;
m_nSKINNING = 0;
m_nLIGHTING_PREVIEW = 0;
m_nNUM_LIGHTS = 0;
#ifdef _DEBUG
m_bCOMPRESSED_VERTS = false;
m_bDOWATERFOG = false;
m_bSKINNING = false;
m_bLIGHTING_PREVIEW = false;
m_bNUM_LIGHTS = false;
#endif // _DEBUG
}
int GetIndex() const
{
Assert( m_bCOMPRESSED_VERTS && m_bDOWATERFOG && m_bSKINNING && m_bLIGHTING_PREVIEW && m_bNUM_LIGHTS );
return ( 1 * m_nCOMPRESSED_VERTS ) + ( 2 * m_nDOWATERFOG ) + ( 4 * m_nSKINNING ) + ( 8 * m_nLIGHTING_PREVIEW ) + ( 16 * m_nNUM_LIGHTS ) + 0;
}
};
#define shaderDynamicTest_skin_vs20 vsh_forgot_to_set_dynamic_COMPRESSED_VERTS + vsh_forgot_to_set_dynamic_DOWATERFOG + vsh_forgot_to_set_dynamic_SKINNING + vsh_forgot_to_set_dynamic_LIGHTING_PREVIEW + vsh_forgot_to_set_dynamic_NUM_LIGHTS
#endif // SKIN_VS20_H
@@ -536,27 +536,6 @@ public:
m_bLIGHTING_PREVIEW = true;
#endif
}
private:
int m_nSTATIC_LIGHT_LIGHTMAP;
#ifdef _DEBUG
bool m_bSTATIC_LIGHT_LIGHTMAP;
#endif
public:
void SetSTATIC_LIGHT_LIGHTMAP( int i )
{
Assert( i >= 0 && i <= 0 );
m_nSTATIC_LIGHT_LIGHTMAP = i;
#ifdef _DEBUG
m_bSTATIC_LIGHT_LIGHTMAP = true;
#endif
}
void SetSTATIC_LIGHT_LIGHTMAP( bool i )
{
m_nSTATIC_LIGHT_LIGHTMAP = i ? 1 : 0;
#ifdef _DEBUG
m_bSTATIC_LIGHT_LIGHTMAP = true;
#endif
}
public:
vertexlit_and_unlit_generic_ps20_Dynamic_Index()
{
@@ -568,10 +547,6 @@ public:
m_bLIGHTING_PREVIEW = false;
#endif // _DEBUG
m_nLIGHTING_PREVIEW = 0;
#ifdef _DEBUG
m_bSTATIC_LIGHT_LIGHTMAP = false;
#endif // _DEBUG
m_nSTATIC_LIGHT_LIGHTMAP = 0;
}
int GetIndex()
{
@@ -581,7 +556,7 @@ public:
bool bAllDynamicVarsDefined = m_bPIXELFOGTYPE && m_bLIGHTING_PREVIEW && m_bSTATIC_LIGHT_LIGHTMAP;
Assert( bAllDynamicVarsDefined );
#endif // _DEBUG
return ( 1 * m_nPIXELFOGTYPE ) + ( 2 * m_nLIGHTING_PREVIEW ) + ( 6 * m_nSTATIC_LIGHT_LIGHTMAP ) + 0;
return ( 1 * m_nPIXELFOGTYPE ) + ( 2 * m_nLIGHTING_PREVIEW ) + 0;
}
};
#define shaderDynamicTest_vertexlit_and_unlit_generic_ps20 psh_forgot_to_set_dynamic_PIXELFOGTYPE + psh_forgot_to_set_dynamic_LIGHTING_PREVIEW + psh_forgot_to_set_dynamic_STATIC_LIGHT_LIGHTMAP + 0
#define shaderDynamicTest_vertexlit_and_unlit_generic_ps20 psh_forgot_to_set_dynamic_PIXELFOGTYPE + psh_forgot_to_set_dynamic_LIGHTING_PREVIEW + 0
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,462 +1,263 @@
#include "shaderlib/cshader.h"
class vertexlit_and_unlit_generic_vs30_Static_Index
{
private:
int m_nVERTEXCOLOR;
#ifdef _DEBUG
bool m_bVERTEXCOLOR;
#endif
public:
void SetVERTEXCOLOR( int i )
{
Assert( i >= 0 && i <= 1 );
m_nVERTEXCOLOR = i;
#ifdef _DEBUG
m_bVERTEXCOLOR = true;
#endif
}
void SetVERTEXCOLOR( bool i )
{
m_nVERTEXCOLOR = i ? 1 : 0;
#ifdef _DEBUG
m_bVERTEXCOLOR = true;
#endif
}
private:
int m_nCUBEMAP;
#ifdef _DEBUG
bool m_bCUBEMAP;
#endif
public:
void SetCUBEMAP( int i )
{
Assert( i >= 0 && i <= 1 );
m_nCUBEMAP = i;
#ifdef _DEBUG
m_bCUBEMAP = true;
#endif
}
void SetCUBEMAP( bool i )
{
m_nCUBEMAP = i ? 1 : 0;
#ifdef _DEBUG
m_bCUBEMAP = true;
#endif
}
private:
int m_nHALFLAMBERT;
#ifdef _DEBUG
bool m_bHALFLAMBERT;
#endif
public:
void SetHALFLAMBERT( int i )
{
Assert( i >= 0 && i <= 1 );
m_nHALFLAMBERT = i;
#ifdef _DEBUG
m_bHALFLAMBERT = true;
#endif
}
void SetHALFLAMBERT( bool i )
{
m_nHALFLAMBERT = i ? 1 : 0;
#ifdef _DEBUG
m_bHALFLAMBERT = true;
#endif
}
private:
int m_nFLASHLIGHT;
#ifdef _DEBUG
bool m_bFLASHLIGHT;
#endif
public:
void SetFLASHLIGHT( int i )
{
Assert( i >= 0 && i <= 1 );
m_nFLASHLIGHT = i;
#ifdef _DEBUG
m_bFLASHLIGHT = true;
#endif
}
void SetFLASHLIGHT( bool i )
{
m_nFLASHLIGHT = i ? 1 : 0;
#ifdef _DEBUG
m_bFLASHLIGHT = true;
#endif
}
private:
int m_nSEAMLESS_BASE;
#ifdef _DEBUG
bool m_bSEAMLESS_BASE;
#endif
public:
void SetSEAMLESS_BASE( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSEAMLESS_BASE = i;
#ifdef _DEBUG
m_bSEAMLESS_BASE = true;
#endif
}
void SetSEAMLESS_BASE( bool i )
{
m_nSEAMLESS_BASE = i ? 1 : 0;
#ifdef _DEBUG
m_bSEAMLESS_BASE = true;
#endif
}
private:
int m_nSEAMLESS_DETAIL;
#ifdef _DEBUG
bool m_bSEAMLESS_DETAIL;
#endif
public:
void SetSEAMLESS_DETAIL( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSEAMLESS_DETAIL = i;
#ifdef _DEBUG
m_bSEAMLESS_DETAIL = true;
#endif
}
void SetSEAMLESS_DETAIL( bool i )
{
m_nSEAMLESS_DETAIL = i ? 1 : 0;
#ifdef _DEBUG
m_bSEAMLESS_DETAIL = true;
#endif
}
private:
int m_nSEPARATE_DETAIL_UVS;
#ifdef _DEBUG
bool m_bSEPARATE_DETAIL_UVS;
#endif
public:
void SetSEPARATE_DETAIL_UVS( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSEPARATE_DETAIL_UVS = i;
#ifdef _DEBUG
m_bSEPARATE_DETAIL_UVS = true;
#endif
}
void SetSEPARATE_DETAIL_UVS( bool i )
{
m_nSEPARATE_DETAIL_UVS = i ? 1 : 0;
#ifdef _DEBUG
m_bSEPARATE_DETAIL_UVS = true;
#endif
}
private:
int m_nDECAL;
#ifdef _DEBUG
bool m_bDECAL;
#endif
public:
void SetDECAL( int i )
{
Assert( i >= 0 && i <= 1 );
m_nDECAL = i;
#ifdef _DEBUG
m_bDECAL = true;
#endif
}
void SetDECAL( bool i )
{
m_nDECAL = i ? 1 : 0;
#ifdef _DEBUG
m_bDECAL = true;
#endif
}
private:
int m_nDONT_GAMMA_CONVERT_VERTEX_COLOR;
#ifdef _DEBUG
bool m_bDONT_GAMMA_CONVERT_VERTEX_COLOR;
#endif
public:
void SetDONT_GAMMA_CONVERT_VERTEX_COLOR( int i )
{
Assert( i >= 0 && i <= 1 );
m_nDONT_GAMMA_CONVERT_VERTEX_COLOR = i;
#ifdef _DEBUG
m_bDONT_GAMMA_CONVERT_VERTEX_COLOR = true;
#endif
}
void SetDONT_GAMMA_CONVERT_VERTEX_COLOR( bool i )
{
m_nDONT_GAMMA_CONVERT_VERTEX_COLOR = i ? 1 : 0;
#ifdef _DEBUG
m_bDONT_GAMMA_CONVERT_VERTEX_COLOR = true;
#endif
}
public:
vertexlit_and_unlit_generic_vs30_Static_Index( )
{
#ifdef _DEBUG
m_bVERTEXCOLOR = false;
#endif // _DEBUG
m_nVERTEXCOLOR = 0;
#ifdef _DEBUG
m_bCUBEMAP = false;
#endif // _DEBUG
m_nCUBEMAP = 0;
#ifdef _DEBUG
m_bHALFLAMBERT = false;
#endif // _DEBUG
m_nHALFLAMBERT = 0;
#ifdef _DEBUG
m_bFLASHLIGHT = false;
#endif // _DEBUG
m_nFLASHLIGHT = 0;
#ifdef _DEBUG
m_bSEAMLESS_BASE = false;
#endif // _DEBUG
m_nSEAMLESS_BASE = 0;
#ifdef _DEBUG
m_bSEAMLESS_DETAIL = false;
#endif // _DEBUG
m_nSEAMLESS_DETAIL = 0;
#ifdef _DEBUG
m_bSEPARATE_DETAIL_UVS = false;
#endif // _DEBUG
m_nSEPARATE_DETAIL_UVS = 0;
#ifdef _DEBUG
m_bDECAL = false;
#endif // _DEBUG
m_nDECAL = 0;
#ifdef _DEBUG
m_bDONT_GAMMA_CONVERT_VERTEX_COLOR = false;
#endif // _DEBUG
m_nDONT_GAMMA_CONVERT_VERTEX_COLOR = 0;
}
int GetIndex()
{
// Asserts to make sure that we aren't using any skipped combinations.
// Asserts to make sure that we are setting all of the combination vars.
#ifdef _DEBUG
bool bAllStaticVarsDefined = m_bVERTEXCOLOR && m_bCUBEMAP && m_bHALFLAMBERT && m_bFLASHLIGHT && m_bSEAMLESS_BASE && m_bSEAMLESS_DETAIL && m_bSEPARATE_DETAIL_UVS && m_bDECAL && m_bDONT_GAMMA_CONVERT_VERTEX_COLOR;
Assert( bAllStaticVarsDefined );
#endif // _DEBUG
return ( 256 * m_nVERTEXCOLOR ) + ( 512 * m_nCUBEMAP ) + ( 1024 * m_nHALFLAMBERT ) + ( 2048 * m_nFLASHLIGHT ) + ( 4096 * m_nSEAMLESS_BASE ) + ( 8192 * m_nSEAMLESS_DETAIL ) + ( 16384 * m_nSEPARATE_DETAIL_UVS ) + ( 32768 * m_nDECAL ) + ( 65536 * m_nDONT_GAMMA_CONVERT_VERTEX_COLOR ) + 0;
}
};
#define shaderStaticTest_vertexlit_and_unlit_generic_vs30 vsh_forgot_to_set_static_VERTEXCOLOR + vsh_forgot_to_set_static_CUBEMAP + vsh_forgot_to_set_static_HALFLAMBERT + vsh_forgot_to_set_static_FLASHLIGHT + vsh_forgot_to_set_static_SEAMLESS_BASE + vsh_forgot_to_set_static_SEAMLESS_DETAIL + vsh_forgot_to_set_static_SEPARATE_DETAIL_UVS + vsh_forgot_to_set_static_DECAL + vsh_forgot_to_set_static_DONT_GAMMA_CONVERT_VERTEX_COLOR + 0
class vertexlit_and_unlit_generic_vs30_Dynamic_Index
{
private:
int m_nCOMPRESSED_VERTS;
#ifdef _DEBUG
bool m_bCOMPRESSED_VERTS;
#endif
public:
void SetCOMPRESSED_VERTS( int i )
{
Assert( i >= 0 && i <= 1 );
m_nCOMPRESSED_VERTS = i;
#ifdef _DEBUG
m_bCOMPRESSED_VERTS = true;
#endif
}
void SetCOMPRESSED_VERTS( bool i )
{
m_nCOMPRESSED_VERTS = i ? 1 : 0;
#ifdef _DEBUG
m_bCOMPRESSED_VERTS = true;
#endif
}
private:
int m_nDYNAMIC_LIGHT;
#ifdef _DEBUG
bool m_bDYNAMIC_LIGHT;
#endif
public:
void SetDYNAMIC_LIGHT( int i )
{
Assert( i >= 0 && i <= 1 );
m_nDYNAMIC_LIGHT = i;
#ifdef _DEBUG
m_bDYNAMIC_LIGHT = true;
#endif
}
void SetDYNAMIC_LIGHT( bool i )
{
m_nDYNAMIC_LIGHT = i ? 1 : 0;
#ifdef _DEBUG
m_bDYNAMIC_LIGHT = true;
#endif
}
private:
int m_nSTATIC_LIGHT_VERTEX;
#ifdef _DEBUG
bool m_bSTATIC_LIGHT_VERTEX;
#endif
public:
void SetSTATIC_LIGHT_VERTEX( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSTATIC_LIGHT_VERTEX = i;
#ifdef _DEBUG
m_bSTATIC_LIGHT_VERTEX = true;
#endif
}
void SetSTATIC_LIGHT_VERTEX( bool i )
{
m_nSTATIC_LIGHT_VERTEX = i ? 1 : 0;
#ifdef _DEBUG
m_bSTATIC_LIGHT_VERTEX = true;
#endif
}
private:
int m_nSTATIC_LIGHT_LIGHTMAP;
#ifdef _DEBUG
bool m_bSTATIC_LIGHT_LIGHTMAP;
#endif
public:
void SetSTATIC_LIGHT_LIGHTMAP( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSTATIC_LIGHT_LIGHTMAP = i;
#ifdef _DEBUG
m_bSTATIC_LIGHT_LIGHTMAP = true;
#endif
}
void SetSTATIC_LIGHT_LIGHTMAP( bool i )
{
m_nSTATIC_LIGHT_LIGHTMAP = i ? 1 : 0;
#ifdef _DEBUG
m_bSTATIC_LIGHT_LIGHTMAP = true;
#endif
}
private:
int m_nDOWATERFOG;
#ifdef _DEBUG
bool m_bDOWATERFOG;
#endif
public:
void SetDOWATERFOG( int i )
{
Assert( i >= 0 && i <= 1 );
m_nDOWATERFOG = i;
#ifdef _DEBUG
m_bDOWATERFOG = true;
#endif
}
void SetDOWATERFOG( bool i )
{
m_nDOWATERFOG = i ? 1 : 0;
#ifdef _DEBUG
m_bDOWATERFOG = true;
#endif
}
private:
int m_nSKINNING;
#ifdef _DEBUG
bool m_bSKINNING;
#endif
public:
void SetSKINNING( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSKINNING = i;
#ifdef _DEBUG
m_bSKINNING = true;
#endif
}
void SetSKINNING( bool i )
{
m_nSKINNING = i ? 1 : 0;
#ifdef _DEBUG
m_bSKINNING = true;
#endif
}
private:
int m_nLIGHTING_PREVIEW;
#ifdef _DEBUG
bool m_bLIGHTING_PREVIEW;
#endif
public:
void SetLIGHTING_PREVIEW( int i )
{
Assert( i >= 0 && i <= 1 );
m_nLIGHTING_PREVIEW = i;
#ifdef _DEBUG
m_bLIGHTING_PREVIEW = true;
#endif
}
void SetLIGHTING_PREVIEW( bool i )
{
m_nLIGHTING_PREVIEW = i ? 1 : 0;
#ifdef _DEBUG
m_bLIGHTING_PREVIEW = true;
#endif
}
private:
int m_nMORPHING;
#ifdef _DEBUG
bool m_bMORPHING;
#endif
public:
void SetMORPHING( int i )
{
Assert( i >= 0 && i <= 1 );
m_nMORPHING = i;
#ifdef _DEBUG
m_bMORPHING = true;
#endif
}
void SetMORPHING( bool i )
{
m_nMORPHING = i ? 1 : 0;
#ifdef _DEBUG
m_bMORPHING = true;
#endif
}
public:
vertexlit_and_unlit_generic_vs30_Dynamic_Index()
{
#ifdef _DEBUG
m_bCOMPRESSED_VERTS = false;
#endif // _DEBUG
m_nCOMPRESSED_VERTS = 0;
#ifdef _DEBUG
m_bDYNAMIC_LIGHT = false;
#endif // _DEBUG
m_nDYNAMIC_LIGHT = 0;
#ifdef _DEBUG
m_bSTATIC_LIGHT_VERTEX = false;
#endif // _DEBUG
m_nSTATIC_LIGHT_VERTEX = 0;
#ifdef _DEBUG
m_bSTATIC_LIGHT_LIGHTMAP = false;
#endif // _DEBUG
m_nSTATIC_LIGHT_LIGHTMAP = 0;
#ifdef _DEBUG
m_bDOWATERFOG = false;
#endif // _DEBUG
m_nDOWATERFOG = 0;
#ifdef _DEBUG
m_bSKINNING = false;
#endif // _DEBUG
m_nSKINNING = 0;
#ifdef _DEBUG
m_bLIGHTING_PREVIEW = false;
#endif // _DEBUG
m_nLIGHTING_PREVIEW = 0;
#ifdef _DEBUG
m_bMORPHING = false;
#endif // _DEBUG
m_nMORPHING = 0;
}
int GetIndex()
{
// Asserts to make sure that we aren't using any skipped combinations.
// Asserts to make sure that we are setting all of the combination vars.
#ifdef _DEBUG
bool bAllDynamicVarsDefined = m_bCOMPRESSED_VERTS && m_bDYNAMIC_LIGHT && m_bSTATIC_LIGHT_VERTEX && m_bSTATIC_LIGHT_LIGHTMAP && m_bDOWATERFOG && m_bSKINNING && m_bLIGHTING_PREVIEW && m_bMORPHING;
Assert( bAllDynamicVarsDefined );
#endif // _DEBUG
return ( 1 * m_nCOMPRESSED_VERTS ) + ( 2 * m_nDYNAMIC_LIGHT ) + ( 4 * m_nSTATIC_LIGHT_VERTEX ) + ( 8 * m_nSTATIC_LIGHT_LIGHTMAP ) + ( 16 * m_nDOWATERFOG ) + ( 32 * m_nSKINNING ) + ( 64 * m_nLIGHTING_PREVIEW ) + ( 128 * m_nMORPHING ) + 0;
}
};
#define shaderDynamicTest_vertexlit_and_unlit_generic_vs30 vsh_forgot_to_set_dynamic_COMPRESSED_VERTS + vsh_forgot_to_set_dynamic_DYNAMIC_LIGHT + vsh_forgot_to_set_dynamic_STATIC_LIGHT_VERTEX + vsh_forgot_to_set_dynamic_STATIC_LIGHT_LIGHTMAP + vsh_forgot_to_set_dynamic_DOWATERFOG + vsh_forgot_to_set_dynamic_SKINNING + vsh_forgot_to_set_dynamic_LIGHTING_PREVIEW + vsh_forgot_to_set_dynamic_MORPHING + 0
// ALL SKIP STATEMENTS THAT AFFECT THIS SHADER!!!
// ($SEPARATE_DETAIL_UVS) && ($SEAMLESS_DETAIL)
// ($DONT_GAMMA_CONVERT_VERTEX_COLOR && ( ! $VERTEXCOLOR ) )
// defined $LIGHTING_PREVIEW && defined $FASTPATH && $LIGHTING_PREVIEW && $FASTPATH
#ifndef VERTEXLIT_AND_UNLIT_GENERIC_VS30_H
#define VERTEXLIT_AND_UNLIT_GENERIC_VS30_H
#include "shaderapi/ishaderapi.h"
#include "shaderapi/ishadershadow.h"
#include "materialsystem/imaterialvar.h"
class vertexlit_and_unlit_generic_vs30_Static_Index
{
unsigned int m_nVERTEXCOLOR : 2;
unsigned int m_nCUBEMAP : 2;
unsigned int m_nHALFLAMBERT : 2;
unsigned int m_nFLASHLIGHT : 2;
unsigned int m_nSEAMLESS_BASE : 2;
unsigned int m_nSEAMLESS_DETAIL : 2;
unsigned int m_nSEPARATE_DETAIL_UVS : 2;
unsigned int m_nDECAL : 2;
unsigned int m_nDONT_GAMMA_CONVERT_VERTEX_COLOR : 2;
#ifdef _DEBUG
bool m_bVERTEXCOLOR : 1;
bool m_bCUBEMAP : 1;
bool m_bHALFLAMBERT : 1;
bool m_bFLASHLIGHT : 1;
bool m_bSEAMLESS_BASE : 1;
bool m_bSEAMLESS_DETAIL : 1;
bool m_bSEPARATE_DETAIL_UVS : 1;
bool m_bDECAL : 1;
bool m_bDONT_GAMMA_CONVERT_VERTEX_COLOR : 1;
#endif // _DEBUG
public:
void SetVERTEXCOLOR( int i )
{
Assert( i >= 0 && i <= 1 );
m_nVERTEXCOLOR = i;
#ifdef _DEBUG
m_bVERTEXCOLOR = true;
#endif // _DEBUG
}
void SetCUBEMAP( int i )
{
Assert( i >= 0 && i <= 1 );
m_nCUBEMAP = i;
#ifdef _DEBUG
m_bCUBEMAP = true;
#endif // _DEBUG
}
void SetHALFLAMBERT( int i )
{
Assert( i >= 0 && i <= 1 );
m_nHALFLAMBERT = i;
#ifdef _DEBUG
m_bHALFLAMBERT = true;
#endif // _DEBUG
}
void SetFLASHLIGHT( int i )
{
Assert( i >= 0 && i <= 1 );
m_nFLASHLIGHT = i;
#ifdef _DEBUG
m_bFLASHLIGHT = true;
#endif // _DEBUG
}
void SetSEAMLESS_BASE( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSEAMLESS_BASE = i;
#ifdef _DEBUG
m_bSEAMLESS_BASE = true;
#endif // _DEBUG
}
void SetSEAMLESS_DETAIL( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSEAMLESS_DETAIL = i;
#ifdef _DEBUG
m_bSEAMLESS_DETAIL = true;
#endif // _DEBUG
}
void SetSEPARATE_DETAIL_UVS( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSEPARATE_DETAIL_UVS = i;
#ifdef _DEBUG
m_bSEPARATE_DETAIL_UVS = true;
#endif // _DEBUG
}
void SetDECAL( int i )
{
Assert( i >= 0 && i <= 1 );
m_nDECAL = i;
#ifdef _DEBUG
m_bDECAL = true;
#endif // _DEBUG
}
void SetDONT_GAMMA_CONVERT_VERTEX_COLOR( int i )
{
Assert( i >= 0 && i <= 1 );
m_nDONT_GAMMA_CONVERT_VERTEX_COLOR = i;
#ifdef _DEBUG
m_bDONT_GAMMA_CONVERT_VERTEX_COLOR = true;
#endif // _DEBUG
}
vertexlit_and_unlit_generic_vs30_Static_Index()
{
m_nVERTEXCOLOR = 0;
m_nCUBEMAP = 0;
m_nHALFLAMBERT = 0;
m_nFLASHLIGHT = 0;
m_nSEAMLESS_BASE = 0;
m_nSEAMLESS_DETAIL = 0;
m_nSEPARATE_DETAIL_UVS = 0;
m_nDECAL = 0;
m_nDONT_GAMMA_CONVERT_VERTEX_COLOR = 0;
#ifdef _DEBUG
m_bVERTEXCOLOR = false;
m_bCUBEMAP = false;
m_bHALFLAMBERT = false;
m_bFLASHLIGHT = false;
m_bSEAMLESS_BASE = false;
m_bSEAMLESS_DETAIL = false;
m_bSEPARATE_DETAIL_UVS = false;
m_bDECAL = false;
m_bDONT_GAMMA_CONVERT_VERTEX_COLOR = false;
#endif // _DEBUG
}
int GetIndex() const
{
Assert( m_bVERTEXCOLOR && m_bCUBEMAP && m_bHALFLAMBERT && m_bFLASHLIGHT && m_bSEAMLESS_BASE && m_bSEAMLESS_DETAIL && m_bSEPARATE_DETAIL_UVS && m_bDECAL && m_bDONT_GAMMA_CONVERT_VERTEX_COLOR );
return ( 128 * m_nVERTEXCOLOR ) + ( 256 * m_nCUBEMAP ) + ( 512 * m_nHALFLAMBERT ) + ( 1024 * m_nFLASHLIGHT ) + ( 2048 * m_nSEAMLESS_BASE ) + ( 4096 * m_nSEAMLESS_DETAIL ) + ( 8192 * m_nSEPARATE_DETAIL_UVS ) + ( 16384 * m_nDECAL ) + ( 32768 * m_nDONT_GAMMA_CONVERT_VERTEX_COLOR ) + 0;
}
};
#define shaderStaticTest_vertexlit_and_unlit_generic_vs30 vsh_forgot_to_set_static_VERTEXCOLOR + vsh_forgot_to_set_static_CUBEMAP + vsh_forgot_to_set_static_HALFLAMBERT + vsh_forgot_to_set_static_FLASHLIGHT + vsh_forgot_to_set_static_SEAMLESS_BASE + vsh_forgot_to_set_static_SEAMLESS_DETAIL + vsh_forgot_to_set_static_SEPARATE_DETAIL_UVS + vsh_forgot_to_set_static_DECAL + vsh_forgot_to_set_static_DONT_GAMMA_CONVERT_VERTEX_COLOR
class vertexlit_and_unlit_generic_vs30_Dynamic_Index
{
unsigned int m_nCOMPRESSED_VERTS : 2;
unsigned int m_nDYNAMIC_LIGHT : 2;
unsigned int m_nSTATIC_LIGHT : 2;
unsigned int m_nDOWATERFOG : 2;
unsigned int m_nSKINNING : 2;
unsigned int m_nLIGHTING_PREVIEW : 2;
unsigned int m_nMORPHING : 2;
#ifdef _DEBUG
bool m_bCOMPRESSED_VERTS : 1;
bool m_bDYNAMIC_LIGHT : 1;
bool m_bSTATIC_LIGHT : 1;
bool m_bDOWATERFOG : 1;
bool m_bSKINNING : 1;
bool m_bLIGHTING_PREVIEW : 1;
bool m_bMORPHING : 1;
#endif // _DEBUG
public:
void SetCOMPRESSED_VERTS( int i )
{
Assert( i >= 0 && i <= 1 );
m_nCOMPRESSED_VERTS = i;
#ifdef _DEBUG
m_bCOMPRESSED_VERTS = true;
#endif // _DEBUG
}
void SetDYNAMIC_LIGHT( int i )
{
Assert( i >= 0 && i <= 1 );
m_nDYNAMIC_LIGHT = i;
#ifdef _DEBUG
m_bDYNAMIC_LIGHT = true;
#endif // _DEBUG
}
void SetSTATIC_LIGHT( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSTATIC_LIGHT = i;
#ifdef _DEBUG
m_bSTATIC_LIGHT = true;
#endif // _DEBUG
}
void SetDOWATERFOG( int i )
{
Assert( i >= 0 && i <= 1 );
m_nDOWATERFOG = i;
#ifdef _DEBUG
m_bDOWATERFOG = true;
#endif // _DEBUG
}
void SetSKINNING( int i )
{
Assert( i >= 0 && i <= 1 );
m_nSKINNING = i;
#ifdef _DEBUG
m_bSKINNING = true;
#endif // _DEBUG
}
void SetLIGHTING_PREVIEW( int i )
{
Assert( i >= 0 && i <= 1 );
m_nLIGHTING_PREVIEW = i;
#ifdef _DEBUG
m_bLIGHTING_PREVIEW = true;
#endif // _DEBUG
}
void SetMORPHING( int i )
{
Assert( i >= 0 && i <= 1 );
m_nMORPHING = i;
#ifdef _DEBUG
m_bMORPHING = true;
#endif // _DEBUG
}
vertexlit_and_unlit_generic_vs30_Dynamic_Index()
{
m_nCOMPRESSED_VERTS = 0;
m_nDYNAMIC_LIGHT = 0;
m_nSTATIC_LIGHT = 0;
m_nDOWATERFOG = 0;
m_nSKINNING = 0;
m_nLIGHTING_PREVIEW = 0;
m_nMORPHING = 0;
#ifdef _DEBUG
m_bCOMPRESSED_VERTS = false;
m_bDYNAMIC_LIGHT = false;
m_bSTATIC_LIGHT = false;
m_bDOWATERFOG = false;
m_bSKINNING = false;
m_bLIGHTING_PREVIEW = false;
m_bMORPHING = false;
#endif // _DEBUG
}
int GetIndex() const
{
Assert( m_bCOMPRESSED_VERTS && m_bDYNAMIC_LIGHT && m_bSTATIC_LIGHT && m_bDOWATERFOG && m_bSKINNING && m_bLIGHTING_PREVIEW && m_bMORPHING );
return ( 1 * m_nCOMPRESSED_VERTS ) + ( 2 * m_nDYNAMIC_LIGHT ) + ( 4 * m_nSTATIC_LIGHT ) + ( 8 * m_nDOWATERFOG ) + ( 16 * m_nSKINNING ) + ( 32 * m_nLIGHTING_PREVIEW ) + ( 64 * m_nMORPHING ) + 0;
}
};
#define shaderDynamicTest_vertexlit_and_unlit_generic_vs30 vsh_forgot_to_set_dynamic_COMPRESSED_VERTS + vsh_forgot_to_set_dynamic_DYNAMIC_LIGHT + vsh_forgot_to_set_dynamic_STATIC_LIGHT + vsh_forgot_to_set_dynamic_DOWATERFOG + vsh_forgot_to_set_dynamic_SKINNING + vsh_forgot_to_set_dynamic_LIGHTING_PREVIEW + vsh_forgot_to_set_dynamic_MORPHING
#endif // VERTEXLIT_AND_UNLIT_GENERIC_VS30_H
@@ -132,15 +132,16 @@ BEGIN_VS_SHADER_FLAGS( ParticleSphere_DX9, "Help for BumpmappedEnvMap", SHADER_N
// (It does this by seeing if the intensity*1/distSqr is > 1. If so, then it scales it so
// it is equal to 1).
const float *f = params[LIGHT_COLOR]->GetVecValue();
Vector vLightColor( f[0], f[1], f[2] );
Vector4D vLightColor( f[0], f[1], f[2], 0.f );
float flScale = max( vLightColor.x, max( vLightColor.y, vLightColor.z ) );
if ( flScale < 0.01f )
flScale = 0.01f;
float vScaleVec[3] = { flScale, flScale, flScale };
Vector4D vScaleVec = { flScale, flScale, flScale, 0.f };
vLightColor /= flScale;
pShaderAPI->SetVertexShaderConstant( VERTEX_SHADER_SHADER_SPECIFIC_CONST_1, vLightColor.Base() );
pShaderAPI->SetVertexShaderConstant( VERTEX_SHADER_SHADER_SPECIFIC_CONST_2, vScaleVec );
pShaderAPI->SetVertexShaderConstant( VERTEX_SHADER_SHADER_SPECIFIC_CONST_2, vScaleVec.Base() );
pShaderAPI->SetPixelShaderFogParams( PSREG_FOG_PARAMS );
+8 -21
View File
@@ -23,7 +23,7 @@
static ConVar mat_fullbright( "mat_fullbright", "0", FCVAR_CHEAT );
static ConVar r_lightwarpidentity( "r_lightwarpidentity", "0", FCVAR_CHEAT );
static ConVar r_rimlight( "r_rimlight", "1", FCVAR_NONE );
static ConVar r_rimlight( "r_rimlight", "1", FCVAR_CHEAT );
// Textures may be bound to the following samplers:
// SHADER_SAMPLER0 Base (Albedo) / Gloss in alpha
@@ -270,9 +270,6 @@ void DrawSkin_DX9_Internal( CBaseVSShader *pShader, IMaterialVar** params, IShad
float flTintReplacementAmount = GetFloatParam( info.m_nTintReplacesBaseColor, params );
float flPhongExponentFactor = ( info.m_nPhongExponentFactor != -1 ) ? GetFloatParam( info.m_nPhongExponentFactor, params ) : 0.0f;
const bool bHasPhongExponentFactor = flPhongExponentFactor != 0.0f;
BlendType_t nBlendType= pShader->EvaluateBlendRequirements( bBlendTintByBaseAlpha ? -1 : info.m_nBaseTexture, true );
bool bFullyOpaque = (nBlendType != BT_BLENDADD) && (nBlendType != BT_BLEND) && !bIsAlphaTested && !bHasFlashlight; //dest alpha is free for special use
@@ -679,7 +676,6 @@ void DrawSkin_DX9_Internal( CBaseVSShader *pShader, IMaterialVar** params, IShad
SET_DYNAMIC_PIXEL_SHADER_COMBO( WRITE_DEPTH_TO_DESTALPHA, bWriteDepthToAlpha );
SET_DYNAMIC_PIXEL_SHADER_COMBO( PIXELFOGTYPE, pShaderAPI->GetPixelFogCombo() );
SET_DYNAMIC_PIXEL_SHADER_COMBO( FLASHLIGHTSHADOWS, bFlashlightShadows );
SET_DYNAMIC_PIXEL_SHADER_COMBO( PHONG_USE_EXPONENT_FACTOR, bHasPhongExponentFactor );
SET_DYNAMIC_PIXEL_SHADER( skin_ps20b );
}
#ifndef _X360
@@ -701,7 +697,6 @@ void DrawSkin_DX9_Internal( CBaseVSShader *pShader, IMaterialVar** params, IShad
SET_DYNAMIC_PIXEL_SHADER_COMBO( WRITE_DEPTH_TO_DESTALPHA, bWriteDepthToAlpha );
SET_DYNAMIC_PIXEL_SHADER_COMBO( PIXELFOGTYPE, pShaderAPI->GetPixelFogCombo() );
SET_DYNAMIC_PIXEL_SHADER_COMBO( FLASHLIGHTSHADOWS, bFlashlightShadows );
SET_DYNAMIC_PIXEL_SHADER_COMBO( PHONG_USE_EXPONENT_FACTOR, bHasPhongExponentFactor );
SET_DYNAMIC_PIXEL_SHADER( skin_ps30 );
bool bUnusedTexCoords[3] = { false, false, !pShaderAPI->IsHWMorphingEnabled() || !bIsDecal };
@@ -811,23 +806,15 @@ void DrawSkin_DX9_Internal( CBaseVSShader *pShader, IMaterialVar** params, IShad
float vSpecularTint[4] = {1, 1, 1, 4};
pShaderAPI->GetWorldSpaceCameraPosition( vEyePos_SpecExponent );
// If we have a phong exponent factor, then use that as a multiplier against the texture.
if ( bHasPhongExponentFactor )
// Use the alpha channel of the normal map for the exponent by default
vEyePos_SpecExponent[3] = -1.f;
if ( (info.m_nPhongExponent != -1) && params[info.m_nPhongExponent]->IsDefined() )
{
vEyePos_SpecExponent[3] = flPhongExponentFactor;
}
else
{
// Use the alpha channel of the normal map for the exponent by default
vEyePos_SpecExponent[3] = -1.f;
if ( (info.m_nPhongExponent != -1) && params[info.m_nPhongExponent]->IsDefined() )
float fValue = params[info.m_nPhongExponent]->GetFloatValue();
if ( fValue > 0.f )
{
float fValue = params[info.m_nPhongExponent]->GetFloatValue();
if ( fValue > 0.f )
{
// Nonzero value in material overrides map channel
vEyePos_SpecExponent[3] = fValue;
}
// Nonzero value in material overrides map channel
vEyePos_SpecExponent[3] = fValue;
}
}
+9 -19
View File
@@ -24,8 +24,6 @@
// DYNAMIC: "WRITE_DEPTH_TO_DESTALPHA" "0..1" [ps30]
// DYNAMIC: "FLASHLIGHTSHADOWS" "0..1" [ps20b]
// DYNAMIC: "FLASHLIGHTSHADOWS" "0..1" [ps30]
// DYNAMIC: "PHONG_USE_EXPONENT_FACTOR" "0..0" [ps20]
// DYNAMIC: "PHONG_USE_EXPONENT_FACTOR" "0..1" [ps20b] [ps30] [PC]
// SKIP: ($PIXELFOGTYPE == 0) && ($WRITEWATERFOGTODESTALPHA != 0)
@@ -78,9 +76,7 @@ const float4 g_EyePos_SpecExponent : register( PSREG_EYEPOS_SPEC_EXPONENT );
const float4 g_FogParams : register( PSREG_FOG_PARAMS );
const float4 g_FlashlightAttenuationFactors_RimMask : register( PSREG_FLASHLIGHT_ATTENUATION ); // On non-flashlight pass, x has rim mask control
const float4 g_FlashlightPos_RimBoost : register( PSREG_FLASHLIGHT_POSITION_RIM_BOOST );
#if FLASHLIGHT
const float4x4 g_FlashlightWorldToTexture : register( PSREG_FLASHLIGHT_TO_WORLD_TEXTURE );
#endif
const float4x4 g_FlashlightWorldToTexture : register( PSREG_FLASHLIGHT_TO_WORLD_TEXTURE );
const float4 g_FresnelSpecParams : register( PSREG_FRESNEL_SPEC_PARAMS ); // xyz are fresnel, w is specular boost
const float4 g_SpecularRimParams : register( PSREG_SPEC_RIM_PARAMS ); // xyz are specular tint color, w is rim power
PixelShaderLightInfo cLightInfo[3] : register( PSREG_LIGHT_INFO_ARRAY ); // 2 registers each - 6 registers total (4th light spread across w's)
@@ -100,7 +96,6 @@ const float4 g_ShaderControls : register( PSREG_CONSTANT_27 ); // x is
#define g_fTintReplacementControl g_ShaderControls.z
#define g_fInvertPhongMask g_ShaderControls.w
sampler BaseTextureSampler : register( s0 ); // Base map, selfillum in alpha
sampler SpecularWarpSampler : register( s1 ); // Specular warp sampler (for iridescence etc)
sampler DiffuseWarpSampler : register( s2 ); // Lighting warp sampler (1D texture for diffuse lighting modification)
@@ -124,6 +119,7 @@ sampler DetailSampler : register( s13 ); // detail texture
sampler SelfIllumMaskSampler : register( s14 ); // selfillummask
struct PS_INPUT
{
float4 baseTexCoordDetailTexCoord : TEXCOORD0; // xy=base zw=detail
@@ -262,11 +258,7 @@ float4 main( PS_INPUT i ) : COLOR
[flatten]
#endif
#if ( PHONG_USE_EXPONENT_FACTOR )
fSpecExp = ( 1.0f + g_EyePos_SpecExponent.w * vSpecExpMap.r );
#else
fSpecExp = (g_EyePos_SpecExponent.w >= 0.0) ? g_EyePos_SpecExponent.w : (1.0f + 149.0f * vSpecExpMap.r);
#endif
// If constant tint is negative, tint with albedo, based upon scalar tint map
#if defined( _X360 )
@@ -294,17 +286,15 @@ float4 main( PS_INPUT i ) : COLOR
}
else
{
#if FLASHLIGHT
float4 flashlightSpacePosition = mul( float4( vWorldPos, 1.0f ), g_FlashlightWorldToTexture );
float4 flashlightSpacePosition = mul( float4( vWorldPos, 1.0f ), g_FlashlightWorldToTexture );
DoSpecularFlashlight( g_FlashlightPos, vWorldPos, flashlightSpacePosition, worldSpaceNormal,
g_FlashlightAttenuationFactors.xyz, g_FlashlightAttenuationFactors.w,
FlashlightSampler, ShadowDepthSampler, NormalizeRandRotSampler, FLASHLIGHTDEPTHFILTERMODE, FLASHLIGHTSHADOWS, true, vProjPos.xy / vProjPos.z,
fSpecExp, vEyeDir, bDoSpecularWarp, SpecularWarpSampler, fFresnelRanges, g_EnvmapTint_ShadowTweaks,
DoSpecularFlashlight( g_FlashlightPos, vWorldPos, flashlightSpacePosition, worldSpaceNormal,
g_FlashlightAttenuationFactors.xyz, g_FlashlightAttenuationFactors.w,
FlashlightSampler, ShadowDepthSampler, NormalizeRandRotSampler, FLASHLIGHTDEPTHFILTERMODE, FLASHLIGHTSHADOWS, true, vProjPos.xy / vProjPos.z,
fSpecExp, vEyeDir, bDoSpecularWarp, SpecularWarpSampler, fFresnelRanges, g_EnvmapTint_ShadowTweaks,
// These two values are output
diffuseLighting, specularLighting );
#endif
// These two values are output
diffuseLighting, specularLighting );
}
// If we didn't already apply Fresnel to specular warp, modulate the specular
@@ -31,9 +31,6 @@
// DYNAMIC: "LIGHTING_PREVIEW" "0..0" [XBOX]
// DYNAMIC: "FLASHLIGHTSHADOWS" "0..1" [ps20b]
// DYNAMIC: "FLASHLIGHTSHADOWS" "0..1" [ps30]
// DYNAMIC: "STATIC_LIGHT_LIGHTMAP" "0..1" [ps20b] [ps30]
// DYNAMIC: "STATIC_LIGHT_LIGHTMAP" "0..0" [ps20]
// DYNAMIC: "DEBUG_LUXELS" "0..1" [ps20b] [ps30]
// detail blend mode 6 = ps20b only
// SKIP: $DETAIL_BLEND_MODE == 6 [ps20]
@@ -74,9 +71,6 @@
// SKIP: $CUBEMAP_SPHERE_LEGACY && ($CUBEMAP == 0)
// Debugging luxels only makes sense if we have lightmaps on this geometry.
// SKIP: ($STATIC_LIGHT_LIGHTMAP == 0) && ($DEBUG_LUXELS == 1)
#include "common_flashlight_fxc.h"
#include "common_vertexlitgeneric_dx9.h"
@@ -111,7 +105,6 @@ sampler FlashlightSampler : register( s7 );
sampler ShadowDepthSampler : register( s8 ); // Flashlight shadow depth map sampler
sampler DepthSampler : register( s10 ); //depth buffer sampler for depth blending
sampler SelfIllumMaskSampler : register( s11 ); // selfillummask
sampler LightMapSampler : register( s12 );
struct PS_INPUT
{
@@ -174,10 +167,6 @@ const float4 g_OutlineParams : register( c9 );
const float3 g_DetailTint : register( c10 );
#endif
#if DEBUG_LUXELS
const float4 g_LuxelScale : register( c11 );
#endif
// Calculate unified fog
float CalcPixelFogFactorConst( float fPixelFogType, const float4 fogParams, const float flEyePosZ, const float flWorldPosZ, const float flProjPosZ )
@@ -342,24 +331,12 @@ float4 main( PS_INPUT i ) : COLOR
}
float3 diffuseLighting = float3( 1.0f, 1.0f, 1.0f );
if( bDiffuseLighting || bVertexColor )
if( bDiffuseLighting || bVertexColor && !( bVertexColor && bDiffuseLighting ) )
{
diffuseLighting = i.color.rgb;
}
#if STATIC_LIGHT_LIGHTMAP
// This matches the behavior of vertex lighting, which multiplies by cOverbright (which is not accessible here)
// And converts from Gamma space to Linear space before being used.
float2 lightmapTexCoords = i.baseTexCoord.xy;
#if DEBUG_LUXELS
lightmapTexCoords.xy *= g_LuxelScale.xy;
#endif
float3 f3LightmapColor = GammaToLinear( 2.0f * tex2D( LightMapSampler, lightmapTexCoords ).rgb );
diffuseLighting = f3LightmapColor;
#endif
float3 albedo = baseColor;
if (bBlendTintByBaseAlpha)
{
float3 tintedColor = albedo * g_DiffuseModulation.rgb;
@@ -12,8 +12,7 @@
// STATIC: "DONT_GAMMA_CONVERT_VERTEX_COLOR" "0..1"
// DYNAMIC: "COMPRESSED_VERTS" "0..1"
// DYNAMIC: "DYNAMIC_LIGHT" "0..1"
// DYNAMIC: "STATIC_LIGHT_VERTEX" "0..1"
// DYNAMIC: "STATIC_LIGHT_LIGHTMAP" "0..1"
// DYNAMIC: "STATIC_LIGHT" "0..1"
// DYNAMIC: "DOWATERFOG" "0..1"
// DYNAMIC: "SKINNING" "0..1"
// DYNAMIC: "LIGHTING_PREVIEW" "0..1" [PC]
@@ -126,7 +125,7 @@ VS_OUTPUT main( const VS_INPUT v )
VS_OUTPUT o = ( VS_OUTPUT )0;
bool bDynamicLight = DYNAMIC_LIGHT ? true : false;
bool bStaticLight = STATIC_LIGHT_VERTEX ? true : false;
bool bStaticLight = STATIC_LIGHT ? true : false;
bool bDoLighting = !g_bVertexColor && (bDynamicLight || bStaticLight);
float4 vPosition = v.vPos;
@@ -41,7 +41,6 @@ BEGIN_VS_SHADER( VertexLitGeneric, "Help for VertexLitGeneric" )
SHADER_PARAM( SELFILLUMFRESNELMINMAXEXP, SHADER_PARAM_TYPE_VEC4, "0", "Self illum fresnel min, max, exp" )
SHADER_PARAM( ALPHATESTREFERENCE, SHADER_PARAM_TYPE_FLOAT, "0.0", "" )
SHADER_PARAM( FLASHLIGHTNOLAMBERT, SHADER_PARAM_TYPE_BOOL, "0", "Flashlight pass sets N.L=1.0" )
SHADER_PARAM( LIGHTMAP, SHADER_PARAM_TYPE_TEXTURE, "shadertest/BaseTexture", "lightmap texture--will be bound by the engine")
// Debugging term for visualizing ambient data on its own
SHADER_PARAM( AMBIENTONLY, SHADER_PARAM_TYPE_INTEGER, "0", "Control drawing of non-ambient light ()" )
@@ -54,7 +53,6 @@ BEGIN_VS_SHADER( VertexLitGeneric, "Help for VertexLitGeneric" )
SHADER_PARAM( PHONGFRESNELRANGES, SHADER_PARAM_TYPE_VEC3, "[0 0.5 1]", "Parameters for remapping fresnel output" )
SHADER_PARAM( PHONGBOOST, SHADER_PARAM_TYPE_FLOAT, "1.0", "Phong overbrightening factor (specular mask channel should be authored to account for this)" )
SHADER_PARAM( PHONGEXPONENTTEXTURE, SHADER_PARAM_TYPE_TEXTURE, "shadertest/BaseTexture", "Phong Exponent map" )
SHADER_PARAM( PHONGEXPONENTFACTOR, SHADER_PARAM_TYPE_FLOAT, "0.0", "When using a phong exponent texture, this will be multiplied by the 0..1 that comes out of the texture." )
SHADER_PARAM( PHONG, SHADER_PARAM_TYPE_BOOL, "0", "enables phong lighting" )
SHADER_PARAM( BASEMAPALPHAPHONGMASK, SHADER_PARAM_TYPE_INTEGER, "0", "indicates that there is no normal map and that the phong mask is in base alpha" )
SHADER_PARAM( INVERTPHONGMASK, SHADER_PARAM_TYPE_INTEGER, "0", "invert the phong mask (0=full phong, 1=no phong)" )
@@ -165,7 +163,6 @@ BEGIN_VS_SHADER( VertexLitGeneric, "Help for VertexLitGeneric" )
info.m_nEnvmapSaturation = ENVMAPSATURATION;
info.m_nAlphaTestReference = ALPHATESTREFERENCE;
info.m_nFlashlightNoLambert = FLASHLIGHTNOLAMBERT;
info.m_nLightmap = LIGHTMAP;
info.m_nFlashlightTexture = FLASHLIGHTTEXTURE;
info.m_nFlashlightTextureFrame = FLASHLIGHTTEXTUREFRAME;
@@ -181,7 +178,6 @@ BEGIN_VS_SHADER( VertexLitGeneric, "Help for VertexLitGeneric" )
info.m_nDiffuseWarpTexture = LIGHTWARPTEXTURE;
info.m_nPhongWarpTexture = PHONGWARPTEXTURE;
info.m_nPhongBoost = PHONGBOOST;
info.m_nPhongExponentFactor = PHONGEXPONENTFACTOR;
info.m_nPhongFresnelRanges = PHONGFRESNELRANGES;
info.m_nPhong = PHONG;
info.m_nBaseMapAlphaPhongMask = BASEMAPALPHAPHONGMASK;
@@ -32,7 +32,6 @@
static ConVar mat_fullbright( "mat_fullbright","0", FCVAR_CHEAT );
static ConVar r_lightwarpidentity( "r_lightwarpidentity","0", FCVAR_CHEAT );
static ConVar mat_luxels( "mat_luxels", "0", FCVAR_CHEAT );
static inline bool WantsSkinShader( IMaterialVar** params, const VertexLitGeneric_DX9_Vars_t &info )
@@ -383,8 +382,7 @@ static void DrawVertexLitGeneric_DX9_Internal( CBaseVSShader *pShader, IMaterial
bool bIsAlphaTested = IS_FLAG_SET( MATERIAL_VAR_ALPHATEST ) != 0;
bool bHasDiffuseWarp = (!bHasFlashlight || IsX360() ) && hasDiffuseLighting && (info.m_nDiffuseWarpTexture != -1) && params[info.m_nDiffuseWarpTexture]->IsTexture();
bool bHasLightmapTexture = IsTextureSet( info.m_nLightmap, params );
bool bHasMatLuxel = bHasLightmapTexture && mat_luxels.GetBool();
//bool bNoCull = IS_FLAG_SET( MATERIAL_VAR_NOCULL );
bool bFlashlightNoLambert = false;
@@ -624,11 +622,6 @@ static void DrawVertexLitGeneric_DX9_Internal( CBaseVSShader *pShader, IMaterial
pShaderShadow->EnableTexture( SHADER_SAMPLER11, true ); // self illum mask
}
// Always enable this sampler, used for lightmaps depending on the dynamic combo.
// Lightmaps are generated in gamma space, but not sRGB, so leave that disabled. Conversion is done in the shader.
pShaderShadow->EnableTexture( SHADER_SAMPLER12, true );
bool bSRGBWrite = true;
if( (info.m_nLinearWrite != -1) && (params[info.m_nLinearWrite]->GetIntValue() == 1) )
{
@@ -1195,32 +1188,12 @@ static void DrawVertexLitGeneric_DX9_Internal( CBaseVSShader *pShader, IMaterial
// Set up light combo state
LightState_t lightState = { 0, false, false, false };
LightState_t lightState = {0, false, false};
if ( bVertexLitGeneric && (!bHasFlashlight || IsX360() ) )
{
pShaderAPI->GetDX9LightState( &lightState );
}
// Override the lighting desired if we have a lightmap set!
if ( bHasLightmapTexture )
{
lightState.m_bStaticLightVertex = false;
lightState.m_bStaticLightTexel = true;
// Usual case, not debugging.
if (!bHasMatLuxel)
{
pShader->BindTexture(SHADER_SAMPLER12, info.m_nLightmap);
}
else
{
float dimensions[] = { 0.0f, 0.0f, 0.0f, 0.0f };
DynamicCmdsOut.BindStandardTexture( SHADER_SAMPLER12, TEXTURE_DEBUG_LUXELS );
pShader->GetTextureDimensions( &dimensions[0], &dimensions[1], info.m_nLightmap );
DynamicCmdsOut.SetPixelShaderConstant( 11, dimensions, 1 );
}
}
MaterialFogMode_t fogType = pShaderAPI->GetSceneFogMode();
int fogIndex = ( fogType == MATERIAL_FOG_LINEAR_BELOW_FOG_Z ) ? 1 : 0;
int numBones = pShaderAPI->GetCurrentNumBones();
@@ -1316,8 +1289,7 @@ static void DrawVertexLitGeneric_DX9_Internal( CBaseVSShader *pShader, IMaterial
DECLARE_DYNAMIC_VERTEX_SHADER( vertexlit_and_unlit_generic_vs20 );
SET_DYNAMIC_VERTEX_SHADER_COMBO( DYNAMIC_LIGHT, lightState.HasDynamicLight() );
SET_DYNAMIC_VERTEX_SHADER_COMBO( STATIC_LIGHT_VERTEX, lightState.m_bStaticLightVertex ? 1 : 0 );
SET_DYNAMIC_VERTEX_SHADER_COMBO( STATIC_LIGHT_LIGHTMAP, lightState.m_bStaticLightTexel ? 1 : 0);
SET_DYNAMIC_VERTEX_SHADER_COMBO( STATIC_LIGHT, lightState.m_bStaticLightVertex ? 1 : 0 );
SET_DYNAMIC_VERTEX_SHADER_COMBO( DOWATERFOG, fogIndex );
SET_DYNAMIC_VERTEX_SHADER_COMBO( SKINNING, numBones > 0 );
SET_DYNAMIC_VERTEX_SHADER_COMBO(
@@ -1334,8 +1306,6 @@ static void DrawVertexLitGeneric_DX9_Internal( CBaseVSShader *pShader, IMaterial
// SET_DYNAMIC_PIXEL_SHADER_COMBO( PIXELFOGTYPE, pShaderAPI->GetPixelFogCombo() );
SET_DYNAMIC_PIXEL_SHADER_COMBO( FLASHLIGHTSHADOWS, bFlashlightShadows );
SET_DYNAMIC_PIXEL_SHADER_COMBO( STATIC_LIGHT_LIGHTMAP, lightState.m_bStaticLightTexel ? 1 : 0 );
SET_DYNAMIC_PIXEL_SHADER_COMBO( DEBUG_LUXELS, bHasMatLuxel ? 1 : 0 );
SET_DYNAMIC_PIXEL_SHADER_COMBO(
LIGHTING_PREVIEW,
pShaderAPI->GetIntRenderingParameter(INT_RENDERPARM_ENABLE_FIXED_LIGHTING) );
@@ -1345,7 +1315,6 @@ static void DrawVertexLitGeneric_DX9_Internal( CBaseVSShader *pShader, IMaterial
{
DECLARE_DYNAMIC_PIXEL_SHADER( vertexlit_and_unlit_generic_ps20 );
SET_DYNAMIC_PIXEL_SHADER_COMBO( PIXELFOGTYPE, pShaderAPI->GetPixelFogCombo() );
SET_DYNAMIC_PIXEL_SHADER_COMBO( STATIC_LIGHT_LIGHTMAP, lightState.m_bStaticLightTexel ? 1 : 0 );
SET_DYNAMIC_PIXEL_SHADER_COMBO(
LIGHTING_PREVIEW,
pShaderAPI->GetIntRenderingParameter(INT_RENDERPARM_ENABLE_FIXED_LIGHTING) );
@@ -1359,8 +1328,7 @@ static void DrawVertexLitGeneric_DX9_Internal( CBaseVSShader *pShader, IMaterial
DECLARE_DYNAMIC_VERTEX_SHADER( vertexlit_and_unlit_generic_vs30 );
SET_DYNAMIC_VERTEX_SHADER_COMBO( DYNAMIC_LIGHT, lightState.HasDynamicLight() );
SET_DYNAMIC_VERTEX_SHADER_COMBO( STATIC_LIGHT_VERTEX, lightState.m_bStaticLightVertex ? 1 : 0 );
SET_DYNAMIC_VERTEX_SHADER_COMBO( STATIC_LIGHT_LIGHTMAP, lightState.m_bStaticLightTexel ? 1 : 0 );
SET_DYNAMIC_VERTEX_SHADER_COMBO( STATIC_LIGHT, lightState.m_bStaticLightVertex ? 1 : 0 );
SET_DYNAMIC_VERTEX_SHADER_COMBO( DOWATERFOG, fogIndex );
SET_DYNAMIC_VERTEX_SHADER_COMBO( SKINNING, numBones > 0 );
SET_DYNAMIC_VERTEX_SHADER_COMBO( LIGHTING_PREVIEW,
@@ -1372,8 +1340,6 @@ static void DrawVertexLitGeneric_DX9_Internal( CBaseVSShader *pShader, IMaterial
DECLARE_DYNAMIC_PIXEL_SHADER( vertexlit_and_unlit_generic_ps30 );
// SET_DYNAMIC_PIXEL_SHADER_COMBO( PIXELFOGTYPE, pShaderAPI->GetPixelFogCombo() );
SET_DYNAMIC_PIXEL_SHADER_COMBO( FLASHLIGHTSHADOWS, bFlashlightShadows );
SET_DYNAMIC_PIXEL_SHADER_COMBO( STATIC_LIGHT_LIGHTMAP, lightState.m_bStaticLightTexel ? 1 : 0 );
SET_DYNAMIC_PIXEL_SHADER_COMBO( DEBUG_LUXELS, bHasMatLuxel ? 1 : 0 );
SET_DYNAMIC_PIXEL_SHADER_COMBO( LIGHTING_PREVIEW,
pShaderAPI->GetIntRenderingParameter(INT_RENDERPARM_ENABLE_FIXED_LIGHTING) );
SET_DYNAMIC_PIXEL_SHADER_CMD( DynamicCmdsOut, vertexlit_and_unlit_generic_ps30 );
@@ -54,7 +54,6 @@ struct VertexLitGeneric_DX9_Vars_t
int m_nFlashlightNoLambert;
int m_nFlashlightTexture;
int m_nFlashlightTextureFrame;
int m_nLightmap;
int m_nSelfIllumTint;
int m_nSelfIllumFresnel;
@@ -68,7 +67,6 @@ struct VertexLitGeneric_DX9_Vars_t
int m_nPhongWarpTexture;
int m_nPhongBoost;
int m_nPhongFresnelRanges;
int m_nPhongExponentFactor;
int m_nSelfIllumEnvMapMask_Alpha;
int m_nAmbientOnly;
int m_nHDRColorScale;
@@ -132,6 +130,7 @@ struct VertexLitGeneric_DX9_Vars_t
int m_nBlendTintByBaseAlpha;
int m_nTintReplacesBaseColor;
};
void InitParamsVertexLitGeneric_DX9( CBaseVSShader *pShader, IMaterialVar** params, const char *pMaterialName, bool bVertexLitGeneric, VertexLitGeneric_DX9_Vars_t &info );
+47 -12
View File
@@ -5,7 +5,6 @@
//===========================================================================//
#include <stdlib.h>
#include <malloc.h>
#include "materialsystem_global.h"
#include "string.h"
#include "shaderapi/ishaderapi.h"
@@ -246,6 +245,7 @@ static void CreateSolidTexture( ITextureInternal *pTexture, color32 color )
//-----------------------------------------------------------------------------
// Creates a normalization cubemap texture
//-----------------------------------------------------------------------------
class CNormalizationCubemap : public ITextureRegenerator
{
public:
@@ -276,7 +276,39 @@ public:
{
float u = x * flInvWidth - 1.0f;
float oow = 1.0f / sqrt( 1.0f + u*u + v*v );
#ifdef DX_TO_GL_ABSTRACTION
float flX = (255.0f * 0.5 * (u*oow + 1.0f) + 0.5f);
float flY = (255.0f * 0.5 * (v*oow + 1.0f) + 0.5f);
float flZ = (255.0f * 0.5 * (oow + 1.0f) + 0.5f);
flX /= 256.0f;
flY /= 256.0f;
flZ /= 256.0f;
switch (iFace)
{
case CUBEMAP_FACE_RIGHT:
pixelWriter.WritePixelF( flZ, 1.f - flY, 1.f - flX, 1.f );
break;
case CUBEMAP_FACE_LEFT:
pixelWriter.WritePixelF( 1.f - flZ, 1.f - flY, flX, 1.f );
break;
case CUBEMAP_FACE_BACK:
pixelWriter.WritePixelF( flX, flZ, flY, 1.f );
break;
case CUBEMAP_FACE_FRONT:
pixelWriter.WritePixelF( flX, 1.f - flZ, 1.f - flY, 1.f );
break;
case CUBEMAP_FACE_UP:
pixelWriter.WritePixelF( flX, 1.f - flY, flZ, 1.f );
break;
case CUBEMAP_FACE_DOWN:
pixelWriter.WritePixelF( 1.f - flX, 1.f - flY, 1.f - flZ, 1.f );
break;
default:
break;
}
#else
int ix = (int)(255.0f * 0.5f * (u*oow + 1.0f) + 0.5f);
ix = clamp( ix, 0, 255 );
int iy = (int)(255.0f * 0.5f * (v*oow + 1.0f) + 0.5f);
@@ -307,6 +339,7 @@ public:
default:
break;
}
#endif
}
}
}
@@ -753,8 +786,8 @@ protected:
friend class AsyncReader;
AsyncReader* m_pAsyncReader;
uint m_nAsyncLoadThread;
uint m_nAsyncReadThread;
ThreadId_t m_nAsyncLoadThread;
ThreadId_t m_nAsyncReadThread;
int m_iSuspendTextureStreaming;
};
@@ -1097,7 +1130,7 @@ private:
m_completedJobs.PushItem( pJob );
}
static unsigned LoaderMain( void* _this )
static uintp LoaderMain( void* _this )
{
ThreadSetDebugName( "Loader" );
@@ -1398,7 +1431,7 @@ private:
mip_h = Max( 1, mip_h >> 1 );
}
}
static unsigned ReaderMain( void* _this )
static uintp ReaderMain( void* _this )
{
ThreadSetDebugName( "Helper" );
@@ -1497,13 +1530,16 @@ void CTextureManager::Init( int nFlags )
color.a = 0;
CreateSolidTexture( m_pGreyAlphaZeroTexture, color );
int nTextureFlags = TEXTUREFLAGS_ENVMAP | TEXTUREFLAGS_NOMIP | TEXTUREFLAGS_NOLOD | TEXTUREFLAGS_SINGLECOPY | TEXTUREFLAGS_CLAMPS | TEXTUREFLAGS_CLAMPT | TEXTUREFLAGS_CLAMPU;
if ( HardwareConfig()->GetMaxDXSupportLevel() >= 80 )
{
ImageFormat fmt = IsOpenGL() ? IMAGE_FORMAT_RGBA16161616F : IMAGE_FORMAT_BGRX8888;
// Create a normalization cubemap
m_pNormalizationCubemap = CreateProceduralTexture( "normalize", TEXTURE_GROUP_CUBE_MAP,
NORMALIZATION_CUBEMAP_SIZE, NORMALIZATION_CUBEMAP_SIZE, 1, IMAGE_FORMAT_BGRX8888,
TEXTUREFLAGS_ENVMAP | TEXTUREFLAGS_NOMIP | TEXTUREFLAGS_SINGLECOPY |
TEXTUREFLAGS_CLAMPS | TEXTUREFLAGS_CLAMPT | TEXTUREFLAGS_CLAMPU );
NORMALIZATION_CUBEMAP_SIZE, NORMALIZATION_CUBEMAP_SIZE, 1, fmt,
nTextureFlags );
CreateNormalizationCubemap( m_pNormalizationCubemap );
}
@@ -1512,7 +1548,6 @@ void CTextureManager::Init( int nFlags )
// In GL, we have poor format support, so we ask for signed float
ImageFormat fmt = IsOpenGL() ? IMAGE_FORMAT_RGBA16161616F : IMAGE_FORMAT_UVWQ8888;
int nTextureFlags = TEXTUREFLAGS_ENVMAP | TEXTUREFLAGS_NOMIP | TEXTUREFLAGS_NOLOD | TEXTUREFLAGS_SINGLECOPY | TEXTUREFLAGS_CLAMPS | TEXTUREFLAGS_CLAMPT | TEXTUREFLAGS_CLAMPU;
#ifdef OSX
// JasonM - ridiculous hack around R500 lameness...we never use this texture on OSX anyways (right?)
@@ -1524,7 +1559,7 @@ void CTextureManager::Init( int nFlags )
m_pSignedNormalizationCubemap = CreateProceduralTexture( "normalizesigned", TEXTURE_GROUP_CUBE_MAP,
NORMALIZATION_CUBEMAP_SIZE, NORMALIZATION_CUBEMAP_SIZE, 1, fmt, nTextureFlags );
CreateSignedNormalizationCubemap( m_pSignedNormalizationCubemap );
m_pIdentityLightWarp = FindOrLoadTexture( "dev/IdentityLightWarp", TEXTURE_GROUP_OTHER );
m_pIdentityLightWarp->IncrementReferenceCount();
}
@@ -1784,7 +1819,7 @@ void CTextureManager::RestoreTexture( ITextureInternal* pTexture )
//-----------------------------------------------------------------------------
void CTextureManager::CleanupPossiblyUnreferencedTextures()
{
if ( !ThreadInMainThread() || MaterialSystem()->GetRenderThreadId() != 0xFFFFFFFF )
if ( !ThreadInMainThread() || MaterialSystem()->GetRenderThreadId() != (uintp)-1 )
{
Assert( !"CTextureManager::CleanupPossiblyUnreferencedTextures should never be called here" );
// This is catastrophically bad, don't do this. Someone needs to fix this. See JohnS or McJohn
@@ -2333,7 +2368,7 @@ void CTextureManager::RemoveTexture( ITextureInternal *pTexture )
Assert( pTexture->GetReferenceCount() <= 0 );
if ( !ThreadInMainThread() || MaterialSystem()->GetRenderThreadId() != 0xFFFFFFFF )
if ( !ThreadInMainThread() || MaterialSystem()->GetRenderThreadId() != (uintp)-1 )
{
Assert( !"CTextureManager::RemoveTexture should never be called here");
// This is catastrophically bad, don't do this. Someone needs to fix this.