// Sharpen_5x5=ps_3_0 // http://www.homecinema-fr.com/forum/viewtopic.php?t=29814317 sampler s0 : register(s0); float4 p0 : register(c0); float4 p1 : register(c1); #define width (p0[0]) #define height (p0[1]) #define counter (p0[2]) #define clock (p0[3]) #define one_over_width (p1[0]) #define one_over_height (p1[1]) #define PI acos(-1) #define x 1.0 float4 main(float2 tex : TEXCOORD0) : COLOR { float dx = one_over_width * x; float dy = one_over_height * x; float dx2 = one_over_width * 2; float dy2 = one_over_height * 2; float4 coef = float4( 0.025, 0.05, 0.1, 2.0 ); float4 c0 = tex2D( s0, tex ) * coef[3]; float4 c1 = tex2D( s0, tex + float2( -dx2 , -dy2 ) ) * coef[0]; c1 += tex2D( s0, tex + float2( -dx , -dy2 ) ) * coef[0]; c1 += tex2D( s0, tex + float2( 0 , -dy2 ) ) * coef[0]; c1 += tex2D( s0, tex + float2( dx , -dy2 ) ) * coef[0]; c1 += tex2D( s0, tex + float2( dx2 , -dy2 ) ) * coef[0]; c1 += tex2D( s0, tex + float2( -dx2 , -dy ) ) * coef[0]; c1 += tex2D( s0, tex + float2( -dx , -dy ) ) * coef[1] ; c1 += tex2D( s0, tex + float2( 0 , -dy ) ) * coef[2] ; c1 += tex2D( s0, tex + float2( dx , -dy ) ) * coef[1] ; c1 += tex2D( s0, tex + float2( dx2 , -dy ) ) * coef[0]; c1 += tex2D( s0, tex + float2( -dx2 , 0 ) ) * coef[0]; c1 += tex2D( s0, tex + float2( -dx , 0 ) ) * coef[2] ; c1 += tex2D( s0, tex + float2( dx , 0 ) ) * coef[2] ; c1 += tex2D( s0, tex + float2( dx2 , 0 ) ) * coef[0]; c1 += tex2D( s0, tex + float2( -dx2 , dy ) ) * coef[0]; c1 += tex2D( s0, tex + float2( -dx , dy ) ) * coef[1] ; c1 += tex2D( s0, tex + float2( 0 , dy ) ) * coef[2] ; c1 += tex2D( s0, tex + float2( dx , dy ) ) * coef[1] ; c1 += tex2D( s0, tex + float2( dx2 , dy ) ) * coef[0]; c1 += tex2D( s0, tex + float2( -dx2 , dy2 ) ) * coef[0]; c1 += tex2D( s0, tex + float2( -dx , dy2 ) ) * coef[0]; c1 += tex2D( s0, tex + float2( 0 , dy2 ) ) * coef[0]; c1 += tex2D( s0, tex + float2( dx , dy2 ) ) * coef[0]; c1 += tex2D( s0, tex + float2( dx2 , dy2 ) ) * coef[0]; c0 -= c1; return c0; }