mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-07 17:29:36 +00:00
Merge branch 'master' into windows
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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 )
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -2200,7 +2200,7 @@ int CMatRenderContext::CompareMaterialCombos( IMaterial *pMaterial1, IMaterial *
|
||||
if ( dLightmap )
|
||||
return dLightmap;
|
||||
|
||||
return (int)pMat1 - (int)pMat2;
|
||||
return (intp)pMat1 - (intp)pMat2;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
class ITextureInternal;
|
||||
class CMaterialSystem;
|
||||
class CMatLightmaps;
|
||||
typedef int ShaderAPITextureHandle_t;
|
||||
typedef intp ShaderAPITextureHandle_t;
|
||||
class IMorphMgrRenderContext;
|
||||
class CMatCallQueue;
|
||||
|
||||
|
||||
@@ -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 )
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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!!!
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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 );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 );
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user