issues with GLX/X11...

Hi fellow coders,

I am currently working on porting a leading 3d engine infrastructure to the linux operating system.

Our engine is split up in several different components, the core API and the driver API (among others)

Problem is as follows, the engine was originally developped in windows where one could set up a window and then apply a rendering context to that window. In our case, the actual window opening is done first in the core API, followed by the opengl(d3d,etc…) initialization in the driver. In X11 this doesn’t appear to be possible since you must choose the correct Visual and ColorMap before the window is created.

Quoting Mark Kilgard (from some website),
"In the X Window System, display mode choices (such as single or double buffering, color index or RGBA mode) must be declared before
the window is initially opened… "

Needless to say (maybe), I am not an X11 specialists, I am really looking for a solution to this problem, hopefully! they are some X command that will allow the attributes of a window to be changed after it is created. Can anyone help me out on that?


Ed. (

I have been looking too for a solution for this problem for some time. Sadly, I’ve never found one

As a workaround, I moved the creation of the window to the render library, in stead of creating the window when the application starts

That’s not quite an option, the engine I am working on was written in win32 and been ported to Be already…

I think that’s a serious problem, X11 is a versatile system, so there must be something that can be done.

I was wondering if someone owned a copy of the green book and if it said anything about this situation?


I’m not entirely sure what you are wanting, if it is just to create a simple X11 window, well I have created a very simple tutorial to do this( it is extremely simple ). But it may give you enough to understand what you need to do. I don’t want to give the URL out, unfortunately at the moment my bandwidth is very low. If this is what you are wanting to do, please email me