Start porting the internal OpenGL API

We should use the rop as a parameter and also pass the x,y offsets
from the target texture
Finally make the texture an array

So now we can support multi plane textures, useful for later
Move the fbo from the renderer to the buffer
Make the gl based renderers work again

For that we simplify the gl code by using common functions
Add the simplest vertex shader
Rename some structs for each implementation