@SilverSurfer I don't have the time handy to do a full working example, but this is the technique in glsl:
https://www.khronos.org/opengl/wiki/Data_Type_(GLSL)#Swizzling
(The vec4 can hold "rgba" values if that's what you put in it - the example there just calls it "xyzw" because the data type generically handles any 4 floats.)
Basically, start from an example that draws an image with a simple glsl shader as a texture. Then hack on the shader until it flips around the colors like you want when it draws the texture. Then use your code that gets the image over the network to upload the image as the OpenGL texture every frame.