aboutsummaryrefslogtreecommitdiff
path: root/mp/src/materialsystem/stdshaders/teeth_dx6.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mp/src/materialsystem/stdshaders/teeth_dx6.cpp')
-rw-r--r--mp/src/materialsystem/stdshaders/teeth_dx6.cpp69
1 files changed, 69 insertions, 0 deletions
diff --git a/mp/src/materialsystem/stdshaders/teeth_dx6.cpp b/mp/src/materialsystem/stdshaders/teeth_dx6.cpp
new file mode 100644
index 00000000..8c097f6a
--- /dev/null
+++ b/mp/src/materialsystem/stdshaders/teeth_dx6.cpp
@@ -0,0 +1,69 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================//
+
+#include "BaseVSShader.h"
+
+// memdbgon must be the last include file in a .cpp file!!!
+#include "tier0/memdbgon.h"
+
+DEFINE_FALLBACK_SHADER( Teeth, Teeth_DX6 )
+
+BEGIN_VS_SHADER( Teeth_DX6,
+ "Help for Teeth_DX6" )
+
+ BEGIN_SHADER_PARAMS
+ SHADER_PARAM( ILLUMFACTOR, SHADER_PARAM_TYPE_FLOAT, "1", "Amount to darken or brighten the teeth" )
+ SHADER_PARAM( FORWARD, SHADER_PARAM_TYPE_VEC3, "[1 0 0]", "Forward direction vector for teeth lighting" )
+ END_SHADER_PARAMS
+
+ SHADER_INIT_PARAMS()
+ {
+ // FLASHLIGHTFIXME
+ params[FLASHLIGHTTEXTURE]->SetStringValue( "effects/flashlight001" );
+
+ SET_FLAGS2( MATERIAL_VAR2_SUPPORTS_HW_SKINNING );
+ }
+
+ SHADER_INIT
+ {
+ LoadTexture( FLASHLIGHTTEXTURE );
+ LoadTexture( BASETEXTURE );
+ }
+
+ void DrawUsingSoftwareLighting( IMaterialVar** params, IShaderDynamicAPI *pShaderAPI, IShaderShadow* pShaderShadow )
+ {
+ SHADOW_STATE
+ {
+ pShaderShadow->EnableTexture( SHADER_SAMPLER0, true );
+ pShaderShadow->OverbrightValue( SHADER_TEXTURE_STAGE0, OVERBRIGHT );
+ pShaderShadow->DrawFlags( SHADER_DRAW_POSITION | SHADER_DRAW_COLOR | SHADER_DRAW_TEXCOORD0 );
+ FogToFogColor();
+ }
+ DYNAMIC_STATE
+ {
+ BindTexture( SHADER_SAMPLER0, BASETEXTURE, FRAME );
+ }
+ Draw();
+ }
+
+ SHADER_DRAW
+ {
+ SHADOW_STATE
+ {
+ SET_FLAGS2( MATERIAL_VAR2_LIGHTING_VERTEX_LIT );
+ }
+ bool hasFlashlight = UsingFlashlight( params );
+
+ if( hasFlashlight )
+ {
+ DrawFlashlight_dx70( params, pShaderAPI, pShaderShadow, FLASHLIGHTTEXTURE, FLASHLIGHTTEXTUREFRAME );
+ }
+ else
+ {
+ DrawUsingSoftwareLighting( params, pShaderAPI, pShaderShadow );
+ }
+ }
+END_SHADER