From: Fay J. F C. AAC/W. <joh...@eg...> - 2004-01-15 15:36:42
|
Some months ago there was a discussion of the game mode being broken. Somebody (I don't remember who or when) submitted a fix which I have implemented on my personal copy of "freeglut". I sent Eero a copy of the modified file, which never made it into CVS. If it works for him, I propose that we put it into CVS. John F. Fay joh...@eg... -----Original Message----- From: Eero Pajarre [mailto:epa...@ko...] Sent: Sunday, January 11, 2004 3:03 PM To: fre...@li... Subject: [Freeglut-developer] Gamemode on Windows Does anybody remember breaking gamemode on Windows during fall/winter? ;-) In my development side I run my program in a window, and I have been slow at updating freeglut for my "production side", so I unfortunately cannot really say what has happened and when, but now I am having problems with gamemode. <snip> |
From: Fay J. F C. AAC/W. <joh...@eg...> - 2004-01-20 23:58:02
|
Oh, dear. I seem to have introduced the bug myself. There was a good bit of discussion about resizing and the like. If I remember correctly, the problem was that "freeglut" was calling the reshape callback immediately upon "glutReshapeWindow" being called while GLUT postponed the call until just before the first call to the display function. There was some application (I think it was the PUI demo program called "complex") that created and reshaped the window but hid it immediately. Then when something happened in another window it (the demo) created a PUI widget for the hidden window and revealed it. The reshape callback referred to the widget. Under GLUT, because the reshape callback was not called back until just before the display callback, this worked just fine. Under "freeglut" before my supposed fix, it crashed because the PUI widget was not defined. So ... I have two questions: (1) Does your program run in game mode under GLUT? (2) How shall we avoid both the Scylla of the early reshape callback invocation and the Charybdis of the false window sizes? (This needs fixing whether or not the program worked under GLUT.) John F. Fay joh...@eg... -----Original Message----- From: Eero Pajarre [mailto:epa...@ko...] Sent: Tuesday, January 20, 2004 2:16 AM To: fre...@li... Subject: Re: [Freeglut-developer] Gamemode on Windows Eero Pajarre wrote: > Does anybody remember breaking gamemode on Windows during > fall/winter? ;-) > .... > > In fgWindowProc there is code: (about line 1208) > > window->State.NeedToResize = GL_TRUE; > window->State.Width = fgState.Size.X; > window->State.Height = fgState.Size.Y; > > This stuffs my gamemode window with an the size specified > in glutInitWindowSize, and sets it up for resize. > As the SourceForge Anon-CVS actually happened to work for a while, I checked when the lines mentioned above were added. The Width and Height setting lines are from 1.63 version for freeglut_main.c, and the relevant comment is: (b) Changes to postpone the handling of window resizes. For gamemode the above change breaks because it overwrites the correct size in window->state with non current data from fgState. Im also a little suspicious what would happen if the user would quickly create several windows and set the initial window size between calls to create window. My first attempt to fix this by checking if this is a gamemode window failed because the code above is run for the first time before the fgStructure.Gamemode is set, and thus finding out if we are in gamemode failed. At the moment I am running freeglut with the above lines commented out, but I am not sure if this breaks something else. (Not sure though) Eero ------------------------------------------------------- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn _______________________________________________ Freeglut-developer mailing list Fre...@li... https://lists.sourceforge.net/lists/listinfo/freeglut-developer |
From: Richard R. <sf...@ol...> - 2004-01-21 02:25:12
|
On Tue, Jan 20, 2004 at 05:57:56PM -0600, Fay John F Contr AAC/WMG wrote: > Oh, dear. I seem to have introduced the bug myself. There was a good bit On the other hand, I probably committed it. (^& > (2) How shall we avoid both the Scylla of the early reshape callback > invocation and the Charybdis of the false window sizes? (This needs fixing > whether or not the program worked under GLUT.) I confess to not grokking exactly what's going wrong with game mode. However, it seems to me that a possible workaround (not to say a terribly nice solution) is to have the game mode check for pending events that it needs to dispatch before engaging itself. Another possible point is this: The issue was, I think, about collecting *client* requests for reshaping GLUT windows. Those were promised to be postponed by GLUT. (This way, clients can be written more simply: They can issue a reshape request whenever, and not worry about the ramifications for the display.) We *can* dispatch the *callback* immediately, however. Would that make a difference? -- "I probably don't know what I'm talking about." http://www.olib.org/~rkr/ |
From: Fay J. F C. AAC/W. <joh...@eg...> - 2004-02-10 01:16:11
|
I've been looking a little at the window creation code in Windows and X. They are in common until the call to "fgOpenWindow" and after that they diverge substantially. I have a little table that describes what happens where in each operating system, with an eye to Richard's request about unifying the code some. I have a couple of concerns, though. (1) Does the PUI Complex demo run with the current CVS version of "freeglut" under Linux? Steve Baker noted that it was broken and I fixed it for Windows. The problem was with the reshape callback being called earlier than in GLUT. (2) Do we have any windowing system experts on the mailing list? If I go after the code, I can see myself introducing all kinds of subtle bugs. John F. Fay joh...@eg... -----Original Message----- From: Richard Rauch [mailto:sf...@ol...] Sent: Friday, January 23, 2004 10:58 AM To: fre...@li... Subject: Re: [Freeglut-developer] Gamemode on Windows On Wed, Jan 21, 2004 at 09:17:36AM +0200, Eero Pajarre wrote: > Richard Rauch wrote: > > >I do not think that this feature should be backed out. > > > >Unfortunately, I'm at a disadvantage for editing, at the moment. > >I just updated to the latest NetBSD -current image on my main > >machine, and XFree86 4.3.0 has decided that it no longer likes > >my video card. (I get a fatal error during device probe.) > > > > > I suspect that this problem only exists at (Microsoft) Windows > version. fgState.Size is not used in similar style in the > X11 codepaths. ...which is the kind of thing that makes me wish to (re)unify some of the code paths. (^& The only OS-specific junk should be where you decide what OS function to call. However, in the case of window resizes, the semantics and whole chain of logic gets substantially rethreaded by choosing UNIX_X11 or WIN32, as I recall. That, IMHO, is wrong, if we can avoid it. -- "I probably don't know what I'm talking about." http://www.olib.org/~rkr/ ------------------------------------------------------- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn _______________________________________________ Freeglut-developer mailing list Fre...@li... https://lists.sourceforge.net/lists/listinfo/freeglut-developer |