
#ifdef VSPS_3
#define zzzpow( a, b ) pow((a),(b))

shared float4x4 projTM: register(c0);
shared float4x4 worldTM: register(c4);
shared float4 invprojTM[ 4 ]: register(c8);
shared float4x4 Bones[ 32 ]: register(c12);
shared float4 eyePosns[ 32 ]: register(c140);
shared float4 lightPosns[ 32 ]: register(c172);

shared float4 Colour_1: register(c204);
shared float4 Colour_2: register(c205);
shared float4 Specular_Colour: register(c206);
shared float4 OpacityAmount: register(c207);
shared float4 LightingBlend: register(c208);
shared float4 BumpReflectPerb: register(c209);
shared float4 FogDepth: register(c210);

shared float4 uvOffset_0: register(c211);
shared float4 uvOffset_1: register(c212);
shared float4 eyePos: register(c213);
shared float4 lightPos: register(c214);

// Samplers
sampler2D TextureSampler_1 : register(s0);
sampler2D ReflectionSampler_1 : register(s1);
sampler2D Normal_MapSampler : register(s2);
sampler2D TextureSampler_2 : register(s3);
sampler2D ReflectionSampler_2 : register(s4);
sampler2D PerbTextureSampler_1 : register(s5);
#else
#ifdef VSPS_2
#define zzzpow( a, b ) pow((a),(b))

shared float4x4 projTM;
shared float4x4 worldTM;
shared float4 invprojTM[ 4 ];
shared float4x4 Bones[ 32 ];
shared float4 eyePosns[ 32 ];
shared float4 lightPosns[ 32 ];

shared float4 Colour_1;
shared float4 Colour_2;
shared float4 Specular_Colour;
shared float4 OpacityAmount;
shared float4 LightingBlend;
shared float4 BumpReflectPerb;
shared float4 FogDepth;

shared float4 uvOffset_0;
shared float4 uvOffset_1;
shared float4 eyePos;
shared float4 lightPos;

// Samplers
sampler2D TextureSampler_1 : register(s0);
sampler2D ReflectionSampler_1 : register(s1);
sampler2D Normal_MapSampler : register(s2);
sampler2D TextureSampler_2 : register(s3);
sampler2D ReflectionSampler_2 : register(s4);
sampler2D PerbTextureSampler_1 : register(s5);
#else
#define zzzpow( a, b ) pow(abs((a)),(b))

uniform float4x4 projTM: C0;
uniform float4x4 worldTM: C4;
uniform float4 invprojTM[ 4 ]: C8;
uniform float4x4 Bones[ 32 ]: C12;
uniform float4 eyePosns[ 32 ]: C140;
uniform float4 lightPosns[ 32 ]: C172;

uniform float4 Colour_1: C204;
uniform float4 Colour_2: C205;
uniform float4 Specular_Colour: C206;
uniform float4 OpacityAmount: C207;
uniform float4 LightingBlend: C208;
uniform float4 BumpReflectPerb: C209;
uniform float4 FogDepth: C210;

uniform float4 uvOffset_0: C211;
uniform float4 uvOffset_1: C212;
uniform float4 eyePos: C213;
uniform float4 lightPos: C214;

// Samplers
uniform sampler2D TextureSampler_1 : register(s0);
uniform sampler2D ReflectionSampler_1 : register(s1);
uniform sampler2D Normal_MapSampler : register(s2);
uniform sampler2D TextureSampler_2 : register(s3);
uniform sampler2D ReflectionSampler_2 : register(s4);
uniform sampler2D PerbTextureSampler_1 : register(s5);
#endif
#endif


// Structures
struct Technique1_Pass1_VS_OUT 
{
	float4 position : POSITION;
	float2 uv0 : TEXCOORD0;
	float4 vCol : COLOR0;
};


Technique1_Pass1_VS_OUT Technique1_Pass1_VS(
		float4 pos : POSITION,
		float2 uv0 : TEXCOORD0,
		float4 vCol : COLOR0
		)
{
	Technique1_Pass1_VS_OUT OUT;
	OUT.position = mul( pos, projTM );
	OUT.uv0 = uv0;
	OUT.vCol = vCol;
	return OUT;
}


float4 Technique1_Pass1_PS(
		float2 uv0 : TEXCOORD0
		, float4 vCol : COLOR0
		) : COLOR
{
	float4 TexColor = tex2D( TextureSampler_1, uv0.xy );
	return TexColor*vCol;
}


technique Technique1
{
	pass Pass1
	{
#ifdef VSPS_3
		VertexShader = compile vs_3_0 Technique1_Pass1_VS();
		PixelShader = compile ps_3_0 Technique1_Pass1_PS();
#else
		VertexShader = compile vs_2_0 Technique1_Pass1_VS();
		PixelShader = compile ps_2_0 Technique1_Pass1_PS();
#endif
	}
}

