sampler texsampler : register(s0);

// Blurs using a 7x7 filter kernel
float4 main(float2 texcoords : TEXCOORD0) : COLOR0
{
  return (
    tex2D(texsampler, texcoords + float2(-3.0f / 512.0f,     -3.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(-2.0f / 512.0f,     -3.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(-1.0f / 512.0f,     -3.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(0,                   -3.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(1.0f / 512.0f,      -3.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(2.0f / 512.0f,      -3.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(3.0f / 512.0f,      -3.0f / 384.0f)) +
 
    tex2D(texsampler, texcoords + float2(-3.0f / 512.0f,     -2.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(-2.0f / 512.0f,     -2.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(-1.0f / 512.0f,     -2.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(0,                   -2.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(1.0f / 512.0f,      -2.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(2.0f / 512.0f,      -2.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(3.0f / 512.0f,      -2.0f / 384.0f)) +
 
    tex2D(texsampler, texcoords + float2(-3.0f / 512.0f,     -1.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(-2.0f / 512.0f,     -1.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(-1.0f / 512.0f,     -1.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(0,                   -1.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(1.0f / 512.0f,      -1.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(2.0f / 512.0f,      -1.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(3.0f / 512.0f,      -1.0f / 384.0f)) +
 
    tex2D(texsampler, texcoords + float2(-3.0f / 512.0f,     0)) +
    tex2D(texsampler, texcoords + float2(-2.0f / 512.0f,     0)) +
    tex2D(texsampler, texcoords + float2(-1.0f / 512.0f,     0)) +
    tex2D(texsampler, texcoords + float2(0,                   0)) +
    tex2D(texsampler, texcoords + float2(1.0f / 512.0f,      0)) +
    tex2D(texsampler, texcoords + float2(2.0f / 512.0f,      0)) +
    tex2D(texsampler, texcoords + float2(3.0f / 512.0f,      0)) +
 
    tex2D(texsampler, texcoords + float2(-3.0f / 512.0f,     1.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(-2.0f / 512.0f,     1.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(-1.0f / 512.0f,     1.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(0,                   1.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(1.0f / 512.0f,      1.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(2.0f / 512.0f,      1.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(3.0f / 512.0f,      1.0f / 384.0f)) +
 
    tex2D(texsampler, texcoords + float2(-3.0f / 512.0f,     2.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(-2.0f / 512.0f,     2.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(-1.0f / 512.0f,     2.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(0,                   2.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(1.0f / 512.0f,      2.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(2.0f / 512.0f,      2.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(3.0f / 512.0f,      2.0f / 384.0f)) +
 
    tex2D(texsampler, texcoords + float2(-3.0f / 512.0f,     3.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(-2.0f / 512.0f,     3.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(-1.0f / 512.0f,     3.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(0,                   3.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(1.0f / 512.0f,      3.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(2.0f / 512.0f,      3.0f / 384.0f)) +
    tex2D(texsampler, texcoords + float2(3.0f / 512.0f,      3.0f / 384.0f))
  ) / 49;
}