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
What do people think especially about (1) ?
John F. Fay
Sunday, January 19 is National Sanctity of Human Life Day in the United