From 3136e508a2311641f35836029c8dbd05abc99c0b Mon Sep 17 00:00:00 2001 From: Torsten Jager Date: Fri, 2 May 2014 15:03:50 +0200 Subject: vo_opengl2: simplify fragment shaders. That 0.5 thing is OK as all texture coordinates refer to the middle of a pixel. However, we dont need abs() as the diff already is 0.0 <= diff < 1.0 . --- src/video_out/video_out_opengl2.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/video_out/video_out_opengl2.c b/src/video_out/video_out_opengl2.c index 3a2476dbe..c6ece1aec 100644 --- a/src/video_out/video_out_opengl2.c +++ b/src/video_out/video_out_opengl2.c @@ -188,13 +188,11 @@ static const char *bicubic_pass1_frag= "void main() {\n" " vec2 coord = gl_TexCoord[0].xy;\n" " vec2 TexCoord = vec2( floor( coord.x - 0.5 ) + 0.5, coord.y );\n" -" vec4 sum = vec4( 0.0 );\n" -" mat4 wlut;\n" -" wlut[0] = texture2DRect( lut, vec2( abs( coord.x - TexCoord.x ) * 1000.0, spline ) );\n" -" for( int x = -1; x <= 2; x++ ) {\n" -" vec4 col = texture2DRect( tex, TexCoord + vec2( float( x ), 0.0) );\n" -" sum += col * wlut[0][x+1];\n" -" }\n" +" vec4 wlut = texture2DRect( lut, vec2( ( coord.x - TexCoord.x ) * 1000.0, spline ) );\n" +" vec4 sum = texture2DRect( tex, TexCoord + vec2( -1.0, 0.0) ) * wlut[0];\n" +" sum += texture2DRect( tex, TexCoord ) * wlut[1];\n" +" sum += texture2DRect( tex, TexCoord + vec2( 1.0, 0.0) ) * wlut[2];\n" +" sum += texture2DRect( tex, TexCoord + vec2( 2.0, 0.0) ) * wlut[3];\n" " gl_FragColor = sum;\n" "}\n"; @@ -207,13 +205,11 @@ static const char *bicubic_pass2_frag= "void main() {\n" " vec2 coord = gl_TexCoord[0].xy;\n" " vec2 TexCoord = vec2( coord.x, floor( coord.y - 0.5 ) + 0.5 );\n" -" vec4 sum = vec4( 0.0 );\n" -" mat4 wlut;\n" -" wlut[0] = texture2DRect( lut, vec2( abs( coord.y - TexCoord.y ) * 1000.0, spline ) );\n" -" for( int y = -1; y <= 2; y++ ) {\n" -" vec4 col = texture2DRect( tex, TexCoord + vec2( 0.0, float( y ) ) );\n" -" sum += col * wlut[0][y+1];\n" -" }\n" +" vec4 wlut = texture2DRect( lut, vec2( ( coord.y - TexCoord.y ) * 1000.0, spline ) );\n" +" vec4 sum = texture2DRect( tex, TexCoord + vec2( 0.0, -1.0 ) ) * wlut[0];\n" +" sum += texture2DRect( tex, TexCoord ) * wlut[1];\n" +" sum += texture2DRect( tex, TexCoord + vec2( 0.0, 1.0 ) ) * wlut[2];\n" +" sum += texture2DRect( tex, TexCoord + vec2( 0.0, 2.0 ) ) * wlut[3];\n" " gl_FragColor = sum;\n" "}\n"; -- cgit v1.2.3