precision mediump float; varying vec2 vTextureCoord; uniform sampler2D uSampler; uniform vec4 dimensions; uniform vec2 red; uniform vec2 green; uniform vec2 blue; void main(void) { gl_FragColor.r = texture2D(uSampler, vTextureCoord + red/dimensions.xy).r; gl_FragColor.g = texture2D(uSampler, vTextureCoord + green/dimensions.xy).g; gl_FragColor.b = texture2D(uSampler, vTextureCoord + blue/dimensions.xy).b; gl_FragColor.a = texture2D(uSampler, vTextureCoord).a; }