sampler2D Src: register(s0);
float fspeed : register(C0);
float fangle : register(C1);
float4 main( float2 TexCoord : TEXCOORD0 ) : COLOR0
{
float4 gaussFilter[7] =
{
-1.0, 0.0, 0.0, 1.0/56.0,
0.0, 0.0, 0.0, 6.0/52.0,
1.0, 0.0, 0.0, 15.0/48.0,
2.0, 0.0, 0.0, 20.0/44.0,
3.0, 0.0, 0.0, 15.0/40.0,
4.0, 0.0, 0.0, 6.0/36.0,
5.0, 0.0, 0.0, 1.0/32.0
};
float4 totalblur = (1.0/32.0)+(6.0/36.0)+(15.0/40.0)+(20.0/44.0)+(15.0/48.0)+(6.0/52.0);
float4 color = 0.0;
float cosangle = cos(fangle);
float sinangle = sin(fangle);
int i;
for (i=0;i < 6;i++)
{
float tempx = gaussFilter[i].x;
gaussFilter[i].x = tempx*cosangle - gaussFilter[i].y*sinangle;
gaussFilter[i].y = gaussFilter[i].y*cosangle + tempx*sinangle;
}
for (i=0;i < 6;i++)
{
color += tex2D(Src,float2(TexCoord.x + gaussFilter[i].x * fspeed,
TexCoord.y + gaussFilter[i].y * fspeed)) * gaussFilter[i].w;
}
return color/totalblur;
}