80a523394c
callback pointers) to a "CallBacks" array in fgState. (This is to allow us to write a loop to clear all callbacks from windows when the window is dead/dying. Using this, we can safely assign NULL to each in a loop.) Support includes two new macros, FETCH_WCB() and INVOKE_WCB(). See freeglut_internal.h for more details there. Some typedefs of function pointer types were altered to make them more uniform (necessary for the macros). All references to window-based callbacks in freeglut are updated to use the new macros. Old usages will cause compile-time errors. As a side bonus, the new invocation macro sets the current window and checks pointers so that these common steps can be uniformly done on every window-based callback. This makes it easier to do things right. At the same time, the array notation (and now required associated casts) make it harder to bypass the macros and abuse the function pointers, in general. After this commit, I will go through the code and clean up dangling issues about formatting. This commit is just a "it now works, let's checkpoint it" type of affair. git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@303 7f0cb862-5218-0410-a997-914c9d46530a |
||
---|---|---|
.. | ||
freeglut |