1struct VS_INPUT
2{
3   float4 Position  : POSITION0;
4   float3 Normal    : TEXCOORD2;
5};
6struct VS_OUTPUT
7{
8   float4 Position       : POSITION0;
9   /* pixel_position and normal are used to compute the reflections in the pixel shader */
10   float3 PixelPosition  : TEXCOORD0;
11   float3 Normal         : TEXCOORD1;
12};
13
14float4x4 al_projview_matrix;
15
16VS_OUTPUT vs_main(VS_INPUT Input)
17{
18   VS_OUTPUT Output;
19
20   Output.Position = mul(Input.Position, al_projview_matrix);
21   Output.PixelPosition = Input.Position.xyz;
22   Output.Normal = Input.Normal;
23   return Output;
24}
25