From: Fay J. F C. AAC/W. <joh...@eg...> - 2002-12-06 14:01:52
|
I'm afraid I don't follow you; in particular, I don't know what to track. (Remember that I'm running a Windows system.) Here is the bit of code from "glutSwapBuffers": #if TARGET_HOST_UNIX_X11 /* * Issue the glXSwapBuffers call and be done with it */ glXSwapBuffers( fgDisplay.Display, fgStructure.Window->Window.Handle ); #elif TARGET_HOST_WIN32 /* * Swap the window's buffers */ SwapBuffers( fgStructure.Window->Window.Device ); #endif fprintf ( dumpfile, "Window %3d in glutSwapBuffers %x\n", fgStructure.Window->ID, fgStructure.Window->Window.Device ) ; } And here are the printout. Of interest are the "Loading Cset" lines, printed when the new curves are read from a file; the "Loading curve list" lines, printed when a display list is being created; the "Calling list" lines, printed before the loop which invokes the display lists; and the "glutSwapBuffers" lines, printed by the code fragment above. <worked> Loading Cset from file <kick.cset> Loading curve list 2 joint 0, for the 10th time Loading curve list 2 joint 1, for the 11th time Loading curve list 2 joint 2, for the 12th time Loading curve list 2 joint 3, for the 13th time Loading curve list 2 joint 4, for the 14th time Window 2 message <000c> 0 1243144 Window 2 message <000d> 510 1238104 Window 1 message <000c> 0 1243176 Window 1 message <000d> 510 1238136 Window 1 in glutPostWindowRedisplay -- redisplay = TRUE Window 2 in glutPostWindowRedisplay -- redisplay = TRUE Window 2 in fgWindowProc (Win32-3) -- redisplay = TRUE Window 1 in fghcbDisplayWindow (Win32) -- redisplay = FALSE Window 1 message <000f> 0 0 Window 1 in fghRedrawWindowByHandle -- redisplay = FALSE Window 1 in glutSwapBuffers 1c010ea1 Window 2 in fghcbDisplayWindow (Win32) -- redisplay = FALSE Window 2 message <000f> 0 0 Window 2 in fghRedrawWindowByHandle -- redisplay = FALSE Calling list 2 Window 2 in glutSwapBuffers d30109d4 </worked> <didn't work> Loading Cset from file <kick.cset> Loading curve list 2 joint 0, for the 10th time Loading curve list 2 joint 1, for the 11th time Loading curve list 2 joint 2, for the 12th time Loading curve list 2 joint 3, for the 13th time Loading curve list 2 joint 4, for the 14th time Window 2 message <000c> 0 1243144 Window 2 message <000d> 510 1238104 Window 1 message <000c> 0 1243176 Window 1 message <000d> 510 1238136 Window 1 in glutPostWindowRedisplay -- redisplay = TRUE Window 2 in glutPostWindowRedisplay -- redisplay = TRUE Window 2 in fgWindowProc (Win32-3) -- redisplay = TRUE Window 1 in glutPostWindowRedisplay -- redisplay = TRUE Window 1 in fghcbDisplayWindow (Win32) -- redisplay = FALSE Window 1 message <000f> 0 0 Window 1 in fghRedrawWindowByHandle -- redisplay = FALSE Window 1 in glutSwapBuffers ed010e11 Window 2 in fghcbDisplayWindow (Win32) -- redisplay = FALSE Window 2 message <000f> 0 0 Window 2 in fghRedrawWindowByHandle -- redisplay = FALSE Calling list 2 Window 2 in glutSwapBuffers 68010a7f </didn't work> The message numbers are as follows: 000c - WM_SETTEXT - sets the window's title 000d - WM_GETTEXT - retrieves the window's title 000f - WM_PAINT - redraws the window John F. Fay joh...@eg... -----Original Message----- From: Steve Baker [mailto:sjb...@ai...] Sent: Thursday, December 05, 2002 8:20 PM To: fre...@li... Subject: Re: [Freeglut-developer] Display lists in freeglut Fay John F Contr AAC/WMG wrote: > I did a search on where the Windows "SwapBuffers" function is called and > there is only the one location in "glutSwapBuffers" right below the > "glXSwapBuffers" call. (It's conditionally-compiled code and only one > call is made.) I print out the window number and each window gets its > buffer swapped once. The version that does not work, with the rotating > guy, then gets the Window 1 (the guy window) buffers swapped on a > continuing basis, but there are no other immediate swap events for > Window 2 (where the problem is). So you can see where glutSwapBuffers is called for Window 2 - but the GLX/WGL swap buffer routine isn't subsequently swapped? Seems like this should be easy to track down. > I've looked at the "freeglut" code to see if the extra call to > "glutPostWindowRedisplay" does anything. It calls "fgWindowByID" to get > the handle of the given window and it sets that window's flag to true. > This is very innocuous. Yes. ---------------------------- Steve Baker ------------------------- HomeEmail: <sjb...@ai...> WorkEmail: <sj...@li...> HomePage : http://web2.airmail.net/sjbaker1 Projects : http://plib.sf.net http://tuxaqfh.sf.net http://tuxkart.sf.net http://prettypoly.sf.net ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Freeglut-developer mailing list Fre...@li... https://lists.sourceforge.net/lists/listinfo/freeglut-developer |