From: Fay J. F C. AAC/W. <joh...@eg...> - 2003-11-20 22:50:24
|
OK, I come up for air briefly and look at the "occlude" demo. It compiles nicely with the most recent "freeglut" that I have and when I start to execute it I get a printed message <begin quote> Your OpenGL implementation lacks support for EXT_histogram or EXT_blend_logic_op (or both). <end quote> I stepped over the ensuing "exit" command manually and the demo ran very nicely, with oscillating teapots passing through various geometric shapes. There was also a menu that came up properly; it didn't do much (besides turn the frame rate printing on and off). When I clicked on the "X" to close the window the program terminated on error because the idle callback was posting a redisplay to a nonexistent window. So here are my questions: (1) Is Richard still having the problem he reported with the "fgOpenWindow" call? (2) Can we please put the "glutPostRedisplay"-from-an-idle-callback issue to bed? I realize that the GLUT documentation states specifically that if you call "glotPostRedisplay" with no active window your program will crash. I propose, however, that we break GLUT compatibility here and simply do nothing but return. Does anybody have any heartburn over this? John F. Fay joh...@eg... -----Original Message----- From: Richard Rauch [mailto:sf...@ol...] Sent: Saturday, November 15, 2003 11:25 PM To: fre...@li... Subject: [Freeglut-developer] Another assert() that shouldn't be an assert(). I went looking for the referenced "test suite" that Chris mentioned in his recent commit log. I found it by downloading the separate 3.7 GLUT (it's not in the GLUT sources that I get by doing "make extract" on the glut package---which is bundled with Mesa 5, apparently). One of the demos, occlude, gives this error when compiled against freeglut: assertion "window->Window.VisualInfo != NULL" failed: file "freeglut_window.c", line 300, function "fgOpenWindow" Abort (core dumped) Now, (a) do I want a core-dump? (b) Without looking at the sources (we can't expect users to have the sources available), what does that mean, other than that something blew up (okay, you can peek at the sources)? (c) What is the proper course of action? (a) Probably not. I didn't compile with debugging turned on, so it won't do me much good. (b) Give up? It's trying to tell me that it could not get an ALPHA buffer. (This seems odd, since I'm pretty sure that Mesa supports alpha channels. But if I remove the ALPHA request from the display mode type, it is able to open the window---then it fails over the lack of a blend function extension...) (Okay, that's not *exactly* what it's trying to tell me, but that's the problem, for some reason.) (c) I think that freeglut should exit(), but not abort(), at this stage, and should print something more meaningful. Really, the assertion failure line looks like a catastrophic internal bug, when it is nothing of the sort. (It's not *too* bad. The fgOpenWindow() reference and the VisualInfo (for people who know a tiny bit of X terminology) suggest the broad problem---and printing out a more detailed message about why the mode failed is probably not reasonable. But we could do better than the assertion.) Of course, it can't return to the caller, because GLUT doesn't have any error-reporting mechanism. In sum: There is one more assert() that really should not have been written as an assert(). Again, I believe that assert() is only meaningful for purely internal logic errors, not for API checks or resource allocation checks (this is a mix of the latter two, really. -- "I probably don't know what I'm talking about." http://www.olib.org/~rkr/ ------------------------------------------------------- This SF. Net email is sponsored by: GoToMyPC GoToMyPC is the fast, easy and secure way to access your computer from any Web browser or wireless device. Click here to Try it Free! https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl _______________________________________________ Freeglut-developer mailing list Fre...@li... https://lists.sourceforge.net/lists/listinfo/freeglut-developer |