On 6 Apr 2005, at 12:53, Melchior FRANZ wrote:

Err ... or is it SDL_SetVideoMode() in SDL's video/SDL_video.c? There's
a suspicious comment in there:

        * WARNING, we need to make sure that the previous mode hasn't
        * already been freed by the video driver.  What do we do in
        * that case?  Should we call SDL_VideoInit() again?
        */

Would be nice if we could identify and fix the bug where it is, instead
of removing a useful feature that is certainly *not* the bug.

I'm going to restate the problem, just to be very clear.

- When a window is resized, SDL (or GLUT) need to re-allocate the GL context. The SDL documentation explicitly mentions that SDL_SetVideoMode will be called again with new size, so a new context will definitely get created on the Mac. I'm putting aside any platform specific ways to modify existing contexts.

- There is nothing (absolutely nothing) in the OpenGL spec about the sharing or lifetime of texture objects or displays lists across different contexts - logically they are completely separate.

- The current FlightGear code assumes that display lists and textures are preserved across a context switch.

- This has not been noticed for the past X years because it *so happens* that the Linux and stock Win32 implementations happen to implement the sharing behaviour between contexts, while OS-X does not. Both behaviours are completely valid and compliant implementations of the OpenGL spec.

- Most (if I'm being bitchy, *good*) scene-graph / engine libraries have some kind of 'invalidate' button you can kick that makes them delete all their display lists / textures and reload them. This is what Unreal / Quake / etc are doing which you change full-screen-ness or many other graphics settings while they running, i.e a vid restart.

- Making PLIB / FG support vid restarts would be a very good thing to do, but would be a lot of work and invasive. I would be happy to give it a go if I thought the patches would be accepted!

- Until such a change is made, re-sizing the window is not going to work right on OS-X

- We can live with this situation. But if there are any user bugs reported from Windows users with odd drivers about 'everything looking crazy after I resize the window', well, now you know :-)

Regards,
James

--
They are laughing with me, not at me.


_______________________________________________ Flightgear-devel mailing list Flightgear-devel@flightgear.org http://mail.flightgear.org/mailman/listinfo/flightgear-devel 2f585eeea02e2c79d7b1d8c4963bae2d

Reply via email to