Bernd Kreimeier wrote:
>
> > Note: This may present some issues in having both X
> > and non-X OpenGL implementations resident on the same
> > platform.
>
> Linux is somewhat unique in that there is a vocal group
> that (for not always sane reasons) wants non-X OpenGL.
>
> Question: is there any chance to define an implementation
> level Linux specific *context* standard? An abstraction
> that covers XFree86 GLX, Glide-based fxMesa, Mesa's GLX
> emulation, and GGI or SVGA based replacements?
Thomas Tanner was discussing this a few months back. The idea is that
it should not be necessary to have separate GLX, WGL, GGIMesa, fxMesa,
etc etc APIs when a very large part of their functionality is
duplicated.
My opinion these days is that GGIMesa _is_ that common API. One of the
core features of GGI is a platform-independent implementation of
abstracted graphics context management. A program written to use
GGIMesa will work properly in any of the environments that WGL, GLX, etc
can.
> If this is not an outright stupid notion, technically
> speaking, then this "base" effort would be a unique chance
> to agree upon such an implementation level standard.
Yup.
> That
> would allow those who strive for embedded and non-X
> solutions to implement non-X contexts. Isn't there a
> chance to make this work in a DRI-like way?
It is already up and running, in the form of GGIMesa.
> If this had any chance to work, wouldn't it imply that
> the proper place for GLX isn't libGL, but rather some
> -lXext, -lMesaGLX, -lsvgaGLC?
I am looking into something like this, where the other APIs besides
GGIMesa can be implemented as LibGGI extension libraries. This would
enable the other APIS to be implemented as shells which would bridge to
GGIMesa underneath. The ease with which I managed to get GLX to run on
top of GGIMesa for the Quake3 port I did recently tells me that this is
a very workable idea, and should be doable without much if any
performance impact.
> If an application could use the same libGL for X and non-X
> by just picking a context, we might appease the no-X
> crowd once and for all, and have a standard for non-X
> OpenGL as well. Switching should not require more effort
> than WGL/GLX abstraction, ideally.
Yes. Once again, this has already been written and works. I can run
the same GGIMesa-using binary on:
* A window in X
* Fullscreen in X
* The Linux fbdev system
* Win32
* Accelerated or unaccelerated in any of the above
Jon