diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /materialsystem/stdshaders/morphaccumulate_vs30.fxc | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'materialsystem/stdshaders/morphaccumulate_vs30.fxc')
| -rw-r--r-- | materialsystem/stdshaders/morphaccumulate_vs30.fxc | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/materialsystem/stdshaders/morphaccumulate_vs30.fxc b/materialsystem/stdshaders/morphaccumulate_vs30.fxc new file mode 100644 index 0000000..9fdac4b --- /dev/null +++ b/materialsystem/stdshaders/morphaccumulate_vs30.fxc @@ -0,0 +1,54 @@ +//======= Copyright � 1996-2006, Valve Corporation, All rights reserved. ====== + +// STATIC: "CONSTANTBASEDMORPH" "0..1" + +#include "common_vs_fxc.h" + +struct VS_INPUT +{ + float4 vSrcCoord : TEXCOORD0; + float vMorphWeightId : TEXCOORD1; +}; + +struct VS_OUTPUT +{ + float4 vDestCoord : POSITION; + float2 vSrcCoord : TEXCOORD0; + float2 vSideSpeedCoord : TEXCOORD1; + +#if CONSTANTBASEDMORPH + float4 vMorphWeights : TEXCOORD2; +#else + float2 vMorphWeightCoord : TEXCOORD2; +#endif +}; + +#if !CONSTANTBASEDMORPH +const float4 vMorphWeightSubrect : register( SHADER_SPECIFIC_CONST_0 ); +const float4 vMorphWeightDimensions : register( SHADER_SPECIFIC_CONST_1 ); +#endif + +VS_OUTPUT main( const VS_INPUT v ) +{ + VS_OUTPUT o = ( VS_OUTPUT )0; + + // FIXME: Want these to be in pixel centers! + float2 projSpace = v.vSrcCoord.zw; + projSpace *= 2.0f; + projSpace -= 1.0f; + projSpace.y *= -1.0f; + + o.vDestCoord = float4( projSpace.x, projSpace.y, 0.0f, 1.0f ); + o.vSrcCoord = v.vSrcCoord.xy; + o.vSideSpeedCoord = v.vSrcCoord.xy; + +#if CONSTANTBASEDMORPH + o.vMorphWeights = cFlexWeights[ v.vMorphWeightId ]; +#else + float flColumn = floor( v.vMorphWeightId / vMorphWeightSubrect.w ); + o.vMorphWeightCoord.x = vMorphWeightSubrect.x + flColumn + 0.5f; + o.vMorphWeightCoord.y = vMorphWeightSubrect.y + v.vMorphWeightId - flColumn * vMorphWeightSubrect.w + 0.5f; + o.vMorphWeightCoord.xy /= vMorphWeightDimensions.xy; +#endif + return o; +}
\ No newline at end of file |