From: J. Perkins <jason@37...> - 2000-06-29 17:46:16
I have a cross-platform OpenGL setup API that I need to get working
with the Mesa-Glide driver on Linux. The setup part is working okay,
but if I try to switch video modes or XVisual (pixel format) it completely
locks up my machine.
When I get a request to change the video mode, I do the following:
glXMakeCurrent(display, window, NULL);
(resize the window to the new mode: 640x480 or 800x600 whatever)
(figure out which XVisual I want to use)
context = glXCreateContext(display, &visual, NULL, True);
(reload OpenGL textures, display lists, etc.)
This code all works, but as soon as I start making gl...() calls again, (in
the "reload" step above) I get a string of messages about an "unhandled
signal 11" and then the machine locks up tight. If I don't release the
rendering context, I'm at least able to switch between windowed and
fullscreen mode via a call to XMesaSetFXmode(), so maybe I could get
away to limiting the user to only one (640x480) fullscreen mode, but I
suppose that would tick off people with SLI systems, and I'd like to make
it work right.
Under Win32, I know that calling wglMakeCurrent(NULL, NULL) when
using the 3dfx driver results in a blank screen from that point on. Are
there any special considerations to releasing the rendering context
on the Mesa-Glide driver? It just occurred to me that I might have to
destroy and recreate the target window, I'll give that a try when I get
back to the hotel tonight.
When I get back home next week I'll dig into the source code again,
but I'm hoping someone can help me out before then. Any help would
be greatly appreciated, I'm so painfully close to having this all working...