Split out GL-related functions and variables from CompScreen, put it in a separate struct and give that new struct the name of something like CompGLContext.
Do the same with GLX-related functions and variables from CompScreen and give that new struct the name of something like CompGLXContext.
I think this will probably help with getting #4 and #7 done, especially when CompGLXContext gets renamed to CompEGLContext after it gets its GLX variables and functions swapped for EGL ones.