Kenny Tilton and I have been corresponding back and forth about our versions of "freeglut" which we have gotten working in our respective environments. Mr. Tilton is working in an interactive LISP environment while I am using straight C/C++ programs. We are both running Windows PC's.
I found ten significant differences between Mr. Tilton's version and my version. Some of these we were able to settle privately; for example, in "freeglut_window.c" around line 324 he makes sure that "window" is not null before dereferencing it with a "->" operation. But there are a couple of design decisions that I would like to submit to the "freeglut" community before we decide on what to do. Here they are:
(1) freeglut_callbacks.c:43 - Mr. Tilton has an "assert" testing whether there is a current window before setting the current window's callback; all I do is return without doing anything. Looking at the spec I don't see where one behavior is called for over the other. What should happen here? Mr. Tilton suggests that if the application is setting a callback without a current window something is wrong, and the assert violation is the surest way to get the programmer's attention.
(2) freeglut_main.c:370 - In "fgError", instead of my "exit (1)" Mr. Tilton has an "assert ( FALSE )". They both cause execution to terminate on error, but I thought assertions were more for smoking out coding errors in the immediate code ("freeglut" in this case) than for smoking out application errors. Mr. Tilton notes that an assert violation causes the debugger to open for him. I propose therefore that we do things his way, but I would like the community's input.
(3) Mr. Tilton has added a new defined constant, "GLUT_INIT_STATE", for "glutGet" to accept. It returns the value of "fgState.Time.Set" which is initialized to FALSE, set to "TRUE" in "glutInit", and set to "FALSE" again in "fgDeinitialize". Mr. Tilton's application needs it because he is running from an interactive LISP environment which starts and stops "freeglut" on the fly. It does not break any existing applications.
(4) We need to have a discussion of what happens when a window is being destroyed, and when does it happen, but that is too big a subject for this e-mail.
What do people think especially about (1) ?
John F. Fay
Sunday, January 19 is National Sanctity of Human Life Day in the United States.