You should start with the "Hello Triangle" sample code that comes with Raspbian and works on all models of Raspberry Pi to get started with OpenGL. Just get rid of the spinning and 5 of the 6 cube faces.
To capture the linux framebuffer you can take fb2png apart. Just focus on the parts that acquire the framebuffer
/dev/fb0 and convert it into a 32-bit color pixel array and skip the PNG part.
In OpenGL use it to create a texture. If you are confident with double buffering you can use a non-blocking approach. Each frame you will have to update the content of the texture using
glTexSubImage2D (I don't recommend releasing and creating a new texture). If you are trying to increase performance, you can try to find the differences in the previously captured and the newly captured linux framebuffer and update only a rectangle instead of the whole texture.
To test your program you should launch it detached by calling it like
./myprog &. This way the program creates the OpenGL context and overlays the screen but the console still is in control of the keyboard. To stop your program type
fg on the console to pass keyboard control back to the OpenGL program and then hit
[ctrl]+[c] to terminate it.
If you have it working the way you like it you can launch it on boot by creating a systemd service. I'm not sure about which dependencies it might have on boot time so this will be some trail and error to load it as soon as possible during startup.