//Vertex Shader
struct vertex
{
float4 position	:	POSITION;
float3 normal	:	NORMAL;
float4 color0	:	COLOR0;
float2 texcoord0	:	TEXCOORD0;
};

struct fragment
{
float4 position	:	POSITION;
float4 color0	:	COLOR0;
float4 objectPos2	:	TEXCOORD0;
float2 TexCoord1	:	TEXCOORD1;
float2 TexCoord2	:	TEXCOORD2;
float2 TexCoord3	:	TEXCOORD3;
float2 TexCoord4	:	TEXCOORD4;
float4 objectPos	:	TEXCOORD5;
};

// This binding semantic requires CG_PROFILE_ARBVP1 or higher.
uniform float4x4 modelViewProj : state.matrix.mvp;

fragment main(vertex IN,
			  uniform float	time)
{
	float2 fTranslation=float2(time,0.0);
	fragment OUT;
	OUT.position = mul( modelViewProj, IN.position );
	OUT.color0 = IN.color0;
	OUT.objectPos2 = IN.position;
	OUT.TexCoord1=IN.texcoord0       + fTranslation * 2.0;
	OUT.TexCoord2=IN.texcoord0 * 2.0 + fTranslation * 4.0;
	OUT.TexCoord3=IN.texcoord0 * 4.0 + fTranslation * 2.0;
	OUT.TexCoord4=IN.texcoord0 * 8.0 + fTranslation;
	OUT.objectPos=OUT.position;
	return OUT;
}