From: Richard R. <sf...@ol...> - 2004-02-20 08:37:01
|
On Wed, Feb 18, 2004 at 12:52:32AM -0600, Richard Rauch wrote: [...] > So, GLUT_UNMANAGED is my nomination as a mode flag. Presently intended > to go in as a new display mode. I've held off committing this since the offscreen rendering change is being properly discussed now. However, this change is less controversial (I think) and I am able to implement and test on both UNIX_X11 and WIN32. I have at least lightly done so. General notes: On UNIX_X11, the features that distinguish a menu from a regular window are a package deal. You get them by requesting that the window not be subjected to a window manager. Because there is no standard window manager that everyone uses, there is no way to re-supply part of the missing details, so they have to be all-or-nothing. freeglut will still have to do some magic behind the scenes for its own menus. This is because the pop-down strategy that is chosen interferes with the mouse input stream for all freeglut windows when a freeglut menu is active. So, internally, some code that used to depend upon {IsMenu} still does so; other code uses {IsUnmanaged} in place of {IsMenu}. {IsMenu} implies {IsUnmanaged}; since {IsMenu} is strictly for internal use, and freeglut menus are defined as unmanaged windows, this makes sense to me. Subwindows (and whatever we use for offscreen rendering) could be rationally marked as "unmanaged". A glutGet() could be defined to find out if something is unmanaged. It seems that implementing these now is not of obvious need, and failing to implement them now does not in any way hinder us from doing so later, so I refrained from doing these things. I'm happy to add one or both, if desired. I am neutral on whether overloading GLUT display mode flags for this is desirable. It makes about as much sense as using those flags for double-buffering, I think. That's what I have in my personal copy. --=20 "I probably don't know what I'm talking about." http://www.olib.org/~rkr/ |