//
// Generated by Microsoft (R) D3DX9 Shader Compiler 9.08.299.0000
//
//   vsa shaderdump19/PAR2028.vso /Fcshaderdump19/PAR2028.vso.dis
//
//
// Parameters:
//
float4 EyePosition : register(c25);
row_major float4x4 ModelViewProj : register(c0);
//
//
// Registers:
//
//   Name          Reg   Size
//   ------------- ----- ----
//   ModelViewProj[0] const_0        1
//   ModelViewProj[1] const_1        1
//   ModelViewProj[2] const_2        1
//   ModelViewProj[3] const_3        1
//   EyePosition   const_25      1
//

// Structures:

struct VS_INPUT {
    float4 Position : POSITION;
    float3 Tangent : TANGENT;
    float3 BiNormal : BINORMAL;
    float3 Normal : NORMAL;
    float4 BaseUV : TEXCOORD0;
    float4 Color : COLOR0;

#define	TanSpaceProj	float3x3(IN.Tangent.xyz, IN.BiNormal.xyz, IN.Normal.xyz)
};

struct VS_OUTPUT {
    // PAR2022.pso

    float4 Color : COLOR0;
    float4 Position : POSITION;
    float2 BaseUV : TEXCOORD0;
    float3 CameraDir : TEXCOORD6;
};

// Code:

VS_OUTPUT main(VS_INPUT IN) {
    VS_OUTPUT OUT;

    /* original shader --------------------------------------- */

    OUT.Color.rgba = IN.Color.rgba;
    OUT.Position.xyzw = mul(ModelViewProj, IN.Position.xyzw);
    OUT.CameraDir.xyz = mul(TanSpaceProj, EyePosition.xyz - IN.Position.xyz);
    OUT.BaseUV.xy = IN.BaseUV.xy;

    return OUT;
};

// approximately 13 instruction slots used
