/* ** Invert RGBA ** (c)2013 Marian Weger */ #extension GL_ARB_texture_rectangle : enable uniform sampler2DRect tex0; uniform vec4 invert; void main(void) { vec2 pos = (gl_TextureMatrix[0] * gl_TexCoord[0]).st; vec4 color_old = texture2DRect(tex0, vec2(pos.x, pos.y)); vec4 color_new = color_old; if(invert.r == 1.0) { color_new.r = 1.0 - color_old.r; } if(invert.g == 1.0) { color_new.g = 1.0 - color_old.g; } if(invert.b == 1.0) { color_new.b = 1.0 - color_old.b; } if(invert.a == 1.0) { color_new.a = 1.0 - color_old.a; } gl_FragColor = color_new; }