Just a question about the use of OpenGL in windowing systems. I’ve written applications using OpenGL before, and noticed that the graphic operations available cover practically all of what I’d see necessary for a video card driver.
I’m wondering why OpenGL is normally seen as an extension to a window systems. With newer hardware available (and a software implementation of the entire pipeline available via Mesa), why not implement a windowing system using a fullscreen OpenGL rendering context, and then map X function calls to OpenGL counterparts?
The obvious gains from this are:
- Faster OpenGL (App->OpenGL rather than App->GLX->X->OpenGL)
- The ability to specify on a pixel basis the exact output from any X program (especially the output from font rendering)
- Subpixel positioning
- Something almost as good as Aqua if not better
Also, if the X function calls are mapped correctly to OpenGL calls, existing X applications can run as per usual (similar to how you can run X applications under MS Windows using a third-party server).
Has this already been considered? Is it feasible? What would need to be added to OpenGL to make this happen?
Looking through some of the new extensions to OpenGL like GLS and GLC, I honestly believe that all that is required is there (use GLS in a TCP/IP stream to connect to server, use GLC for fast rendering of characters and as a font server, etc.)
Window management may be a problem, but could you use GLUT for this? Would we need a new GLRCM protocol (GL Rendering Context Management), or just make applications direct their output to a viewport?