X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=shaders%2Fblitblur.h;h=7d95dcce30edfd0bdb283381a69631b6fb701dec;hb=721322812d9fcfa648268aab34ec1879c9414dfe;hp=5de8e0a63544bdba324545f468d0d0710ff5f768;hpb=bf8478e3656ae729248a594a57d111f08bed41e0;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/shaders/blitblur.h b/shaders/blitblur.h index 5de8e0a..7d95dcc 100644 --- a/shaders/blitblur.h +++ b/shaders/blitblur.h @@ -31,6 +31,7 @@ static struct vg_shader _shader_blitblur = { "uniform vec2 uOverrideDir;\n" "uniform float uTime;\n" "uniform float uGlitchStrength;\n" +"uniform vec2 uClampUv;\n" "\n" "in vec2 aUv;\n" "\n" @@ -62,10 +63,10 @@ static struct vg_shader _shader_blitblur = { " \n" " vec2 vdir = texture( uTexMotion, vuv ).xy * uBlurStrength + uOverrideDir;\n" "\n" -" vec4 vcolour0 = texture( uTexMain, vuv + vdir*vrand.x );\n" -" vec4 vcolour1 = texture( uTexMain, vuv + vdir*vrand.y );\n" -" vec4 vcolour2 = texture( uTexMain, vuv + vdir*vrand1.x );\n" -" vec4 vcolour3 = texture( uTexMain, vuv + vdir*vrand1.y );\n" +" vec4 vcolour0 = texture( uTexMain, min(vuv + vdir*vrand.x,uClampUv) );\n" +" vec4 vcolour1 = texture( uTexMain, min(vuv + vdir*vrand.y,uClampUv) );\n" +" vec4 vcolour2 = texture( uTexMain, min(vuv + vdir*vrand1.x,uClampUv) );\n" +" vec4 vcolour3 = texture( uTexMain, min(vuv + vdir*vrand1.y,uClampUv) );\n" "\n" " FragColor = ( vcolour0 + vcolour1 + vcolour2 + vcolour3 ) * 0.25;\n" "}\n" @@ -79,6 +80,7 @@ static GLuint _uniform_blitblur_uBlurStrength; static GLuint _uniform_blitblur_uOverrideDir; static GLuint _uniform_blitblur_uTime; static GLuint _uniform_blitblur_uGlitchStrength; +static GLuint _uniform_blitblur_uClampUv; static void shader_blitblur_uInverseRatio(v2f v){ glUniform2fv(_uniform_blitblur_uInverseRatio,1,v); } @@ -100,6 +102,9 @@ static void shader_blitblur_uTime(float f){ static void shader_blitblur_uGlitchStrength(float f){ glUniform1f(_uniform_blitblur_uGlitchStrength,f); } +static void shader_blitblur_uClampUv(v2f v){ + glUniform2fv(_uniform_blitblur_uClampUv,1,v); +} static void shader_blitblur_register(void){ vg_shader_register( &_shader_blitblur ); } @@ -112,5 +117,6 @@ static void shader_blitblur_link(void){ _uniform_blitblur_uOverrideDir = glGetUniformLocation( _shader_blitblur.id, "uOverrideDir" ); _uniform_blitblur_uTime = glGetUniformLocation( _shader_blitblur.id, "uTime" ); _uniform_blitblur_uGlitchStrength = glGetUniformLocation( _shader_blitblur.id, "uGlitchStrength" ); + _uniform_blitblur_uClampUv = glGetUniformLocation( _shader_blitblur.id, "uClampUv" ); } #endif /* SHADER_blitblur_H */