#version 450 core in vec2 texPos; in vec2 distmask[2]; in vec2 pinch[2]; out vec4 fColor; layout (binding = 1) uniform sampler2D screenTexture; float x = 1 - min(1, sqrt(distance(distmask[0],vec2(0,0)))); //float x = 1 - min(1, dot(distmask,distmask)); vec3 toYUV (vec3 rgb) { return rgb * mat3 ( 0.299 , 0.587 , 0.114 ,-0.14713,-0.28886, 0.436 , 0.615 ,-0.51499,-0.10001 ) ; } vec3 toRGB (vec3 yuv) { return yuv * mat3 (1, 0 , 1.13983 ,1,-0.39465,-0.58060 ,1, 2.03211, 0 ) ; } void main() { float y = 1 - min(1, sqrt(distance(distmask[1],vec2(0,0)))); fColor = texture(screenTexture , (texPos + x * pinch[0] + y * pinch[1] )); } // fColor = vec4 // ( toRGB(vec3( toYUV(texture(screenTexture, texPos).rgb).r // , toYUV(texture(screenTexture, (texPos + x*pinch)).rgb).g // , toYUV(texture(screenTexture, (texPos + x*(pinch))).rgb).b // ) ) // , 1 // ) ;