+ * README.win32: Adding a \"README.Win32\" file with instructions on how
+ to install \"freeglut\" under Windows.
+ * src/freeglut_main.c: Adding Window Exit event handling to the Windows
+ code; also adding a note that eventually it would be good to handle
+ the Window Entry event
+
+2005-04-27 John F. Fay <john.fay.ctr@eglin.af.mil>
+
+ * src/freeglut_window.c: Fixing bug [ 1111218 ] fullscreen not working
+ Better late than never.
+ * src/freeglut_init.c: Fixing Bug Report [ 1160442 ]
+ glutGet(GLUT_ELAPSED_TIME) is too granular
+
+2005-04-26 John F. Fay <john.fay.ctr@eglin.af.mil>
+
+ * src/freeglut_internal.h, src/freeglut_structure.c: Fixing the
+ typecasts on the callback fetches and invocations to allow
+ \"freeglut\" to compile with GCC 4.0
+ * src/freeglut_menu.c: Fixing erroneous implementation of Takeshi\'s fix
+ * src/Makefile.am: Changing include path from relative to absolute to
+ support off-directory builds (Yuri D\'Elia, March 22, 5:59 PM)
+ * LISEZ_MOI: Adding \"LISEZ-MOI\", the French version of \"README\"
+
+2005-04-25 John F. Fay <john.fay.ctr@eglin.af.mil>
+
+ * ChangeLog: Updating the ChangeLog ... it seems to be something of a
+ stepchild if we\'re not careful.
+
+2005-04-22 John F. Fay <john.fay.ctr@eglin.af.mil>
+
+ * src/freeglut_menu.c: Yuri D\'Elia\'s changes to get the virtual
+ maximum screen extent instead of the actual screen size.
+ * src/freeglut_gamemode.c: Yuri D\'Elia\'s changes to the game mode
+ window
+ * src/freeglut_structure.c: Change a hard-coded number to a defined
+ constant and add some initializations
+ * src/freeglut_cursor.c: Removing duplicate cursor code. This and the
+ previous change (in freeglut_main.c) apparently got combined.
+ * ChangeLog: Updating the ChangeLog to reflect activity over the past
+ few months
+ * src/freeglut_callbacks.c, src/freeglut_cursor.c,
+ src/freeglut_display.c, src/freeglut_gamemode.c,
+ src/freeglut_internal.h, src/freeglut_main.c, src/freeglut_menu.c,
+ src/freeglut_misc.c, src/freeglut_state.c, src/freeglut_structure.c,
+ src/freeglut_window.c: Trying again to change \"fgStructure.Window\"
+ to \"fgStructure.CurrentWindow\" and \"fgStructure.Menu\" to
+ \"fgStructure.CurrentMenu\" for easier maintenance.
+
+2005-04-15 John F. Fay <john.fay.ctr@eglin.af.mil>
+
+ * ChangeLog: Updating the ChangeLog as a means of testing pCVSc
+ * src/freeglut_internal.h: Testing!
+
+2005-03-23 Brian Paul
+
+ * include/GL/freeglut_ext.h: added comment about AUX flags
+
+2005-02-16 Brian Paul
+
+ * src/freeglut_internal.h, src/freeglut_main.c, src/freeglut_menu.c,
+ src/freeglut_structure.c, src/freeglut_window.c: fixes for menus being
+ attached to multiple buttons/windows (John Fay)
+ * src/freeglut_callbacks.c: added error check (John Fay)
+
+2005-02-15 Brian Paul
+
+ * src/freeglut_init.c, src/freeglut_window.c: AUX buffers for Windows
+ (John Fay)
+
+2005-02-11 Brian Paul
+
+ * include/GL/freeglut_ext.h, src/freeglut_init.c, src/freeglut_window.c:
+ Aux color buffer support. Pass one of GLUT_AUX[1234] to
+ glutInitDisplayMode. Only implemented/tested on GLX, not Windows.
+ * include/GL/freeglut_ext.h, src/freeglut_ext.c,
+ src/freeglut_internal.h: Fix object/function pointer inconsistencies
+ which are a problem for gcc 3.4.2. Added GLUTproc type, returned by
+ glutGetProcAddress().
+
+2005-01-23 Sven Panne <sven.panne@aedion.de>
+
+ * configure.ac: autoconf 2.58 is enough
+ * src/freeglut_callbacks.c, src/freeglut_internal.h: Stylistic change
+ only (added "do { ... } while( 0 )" around multi-statement macros)
+ * configure.ac, src/freeglut_joystick.c, src/freeglut_main.c: Testing
+ for errno.h is overkill. :-)
+ * src/freeglut_cursor.c, src/freeglut_main.c: Windows platforms only:
+ Merged some cursor-related code from John Fay (with minor changes)
+
+2005-01-05 Sven Panne <sven.panne@aedion.de>
+
+ * src/freeglut_ext.c, src/freeglut_font.c, src/freeglut_main.c,
+ src/freeglut_state.c, src/freeglut_window.c: Hopefully removed all
+ damage done by commits without merge
+ * ChangeLog, src/freeglut_cursor.c: Reworked the X11 part of
+ glutSetCursor, fixing bug #764187 (Variable mouse pointers don't work)
+ on the way: * Use slightly more compatible cursor shapes for
+ GLUT_CURSOR_RIGHT_ARROW and GLUT_CURSOR_LEFT_ARROW. * Refactored and
+ fixed the erroneous code for GLUT_CURSOR_NONE. * Removed the incorrect
+ use of XFreeCursor and use a cache of cursors instead. Cursors are
+ never freed now, we could do this e.g. via reference countig if this
+ is really needed. * Fixed error handling. * Unknown cursor types are
+ an error now. * Now the window state always corresponds to the wanted
+ cursorID, even in the case of GLUT_CURSOR_FULL_CROSSHAIR.
+
+ NOTE: I am not sure where the cursor cache should really reside,
+ currently it is simply a file-local variable.
+
+2005-01-03 Sven Panne <sven.panne@aedion.de>
+
+ * ChangeLog, src/freeglut_gamemode.c: Fixed part of bug #926883 (Video
+ mode matching code, memory leaks, fullscreen), i.e. issue warnings
+ when XF86VidModeFOO fails.
+ * ChangeLog, src/freeglut_gamemode.c: (234) Fixed part of bug #926883
+ (Video mode matching code, memory leaks, fullscreen): Now we first try
+ to get an exact mode match, ignoring the refresh rate if none could be
+ found. This way the X11 part and the WinDoze behave similarly. NOTE:
+ We still don't behave like GLUT, because it has a wider notion of
+ "best" match. We have to refactor and extend freeglut quite a bit to
+ do that.
+ * ChangeLog, src/freeglut_gamemode.c: Fixed part of bug #926883 (Video
+ mode matching code, memory leaks, fullscreen), i.e. memory leak caused
+ by not freeing the mode lines returned by XF86VidModeGetAllModeLines
+ * ChangeLog, src/freeglut_window.c: Improved error message a bit when no
+ suitable visual could be found (X11 only).
+ * configure.ac, src/freeglut_internal.h, src/freeglut_main.c: autoconf'd
+ vfprintf
+ * src/freeglut_joystick.c: Removed redundant #include
+ * ChangeLog, configure.ac, src/freeglut_joystick.c, src/freeglut_main.c:
+ autoconf'd <errno.h> handling and removed an unused '#include
+ <sys/stat.h>'
+ * configure.ac, src/freeglut_joystick.c, src/freeglut_main.c: autoconf'd
+ <limits.h> and <sys/param.h> handling, removing MIN/MAX macros on the
+ way.
+ * src/freeglut_internal.h: Cosmetics.
+ * configure.ac, src/freeglut_joystick.c: autoconf'd <fcntl.h> and
+ <sys/ioctl.h> handling
+ * src/freeglut_internal.h, src/freeglut_joystick.c, src/freeglut_main.c:
+ Improved <sys/typed.h> / <unistd.h> handling as suggested by the
+ autoconf docs.
+ * configure.ac, progs/demos/Lorenz/lorenz.c, src/freeglut_internal.h,
+ src/freeglut_main.c: Fixed <sys/time.h> / <time.h> handling as
+ suggested by the autoconf docs.
+ * src/freeglut_callbacks.c, src/freeglut_cursor.c,
+ src/freeglut_display.c, src/freeglut_ext.c, src/freeglut_font.c,
+ src/freeglut_font_data.c, src/freeglut_gamemode.c,
+ src/freeglut_geometry.c, src/freeglut_init.c, src/freeglut_internal.h,
+ src/freeglut_joystick.c, src/freeglut_main.c, src/freeglut_menu.c,
+ src/freeglut_misc.c, src/freeglut_overlay.c, src/freeglut_state.c,
+ src/freeglut_structure.c, src/freeglut_teapot.c,
+ src/freeglut_videoresize.c, src/freeglut_window.c: Moved '#include
+ "config.h"' to freeglut_internal.h, we will need it there soon and it
+ makes everything a bit shorter.
+ * ChangeLog: Resurrected my recent additions which were nuked by the
+ previous commit, adding the latest change on the way. :-(
+ * acconfig.h: Removed acconfig.h, it is deprecated and we don't need it.
+ * src/freeglut_cursor.c, src/freeglut_font.c, src/freeglut_init.c,
+ src/freeglut_structure.c: Make it compile again with "-Wall -pedantic
+ -Werror", redoing quite a few things I've fixed already a few days
+ ago. Have today's commits been done by copying instead of merging? :-(
+
+2005-01-03 James Jones <puggles@users.sourceforge.net>
+
+ * src/freeglut_internal.h, src/freeglut_main.c, src/freeglut_menu.c,
+ src/freeglut_window.c: Changes remove duplicate menu code from
+ "freeglut_window.c" and put it into one place in "freeglut_menu.c"
+ where it belongs. - John Fay
+ * ChangeLog: General ChangeLog Updates
+ * src/freeglut_callbacks.c, src/freeglut_cursor.c,
+ src/freeglut_display.c, src/freeglut_ext.c, src/freeglut_font.c,
+ src/freeglut_gamemode.c, src/freeglut_geometry.c, src/freeglut_init.c,
+ src/freeglut_internal.h, src/freeglut_joystick.c, src/freeglut_main.c,
+ src/freeglut_menu.c, src/freeglut_misc.c, src/freeglut_state.c,
+ src/freeglut_structure.c, src/freeglut_teapot.c,
+ src/freeglut_teapot_data.h, src/freeglut_window.c: Adding
+ initialization checking to all GLUT interface functions and removing
+ asserts from the rest of the code - John Fay
+
+2005-01-01 Sven Panne <sven.panne@aedion.de>
+
+ * ChangeLog, src/Makefile.am: Added missing files from "src"
+ subdirectory to dist.
+ * AUTHORS: Synched with project member list on SourceForge
+ * ChangeLog, Makefile.am, configure.ac: Modernized configure.ac a bit
+ and added a rule to Makefile.am to update libtool. Note that all gcc
+ compiler warnings are now on by default.
+ * ChangeLog, include/GL/freeglut_std.h,
+ progs/demos/CallbackMaker/CallbackMaker.c,
+ progs/demos/Fractals_random/fractals_random.c,
+ progs/demos/Lorenz/lorenz.c, progs/demos/One/one.c,
+ src/freeglut_cursor.c, src/freeglut_font.c, src/freeglut_init.c,
+ src/freeglut_teapot_data.h: Make "gcc -Wall -pedantic -Werror" happy.
+ * ., .cvsignore: Ignore files generated by autoscan.
+ * ChangeLog, INSTALL, configure.ac, configure.in: Renamed "configure.in"
+ to the officially preferred "configure.ac".
+ * stamp-h, stamp-h.in: Removed unused stamp-h* files, configure
+ generates them (a single stamp-h1, to be exact).
+ * ChangeLog, Makefile.am: Added eMbedded Visual Tools project/workspace
+ files to distribution.
+ * ., .cvsignore: Ignore distribution tar files
+
+2004-12-31 Sven Panne <sven.panne@aedion.de>
+
+ * ChangeLog, src/freeglut_main.c: Fixed first bug of #1064195 (two
+ things when using signals): Don't issue a warning about select when a
+ non-blocked signal was caught. This makes sense and is more compatible
+ with GLUT.
+ * ChangeLog, src/freeglut_font.c: Fixed bug #1040435 (glutBitmapString()
+ bug).
+ * ChangeLog: Alas, the ChangeLog has not the usual ChangeLog format, so
+ tell (X)Emacs about that fact.
+ * ChangeLog, src/freeglut_window.c: Fixed bug #1045054 (KeyReleaseMask
+ typo).
+ * ChangeLog, src/freeglut_state.c: Fixed bug #1087642
+ (glutDeviceGet(GLUT_DEVICE_KEY_REPEAT) unimplemented).
+ * ChangeLog, src/freeglut_ext.c: Fixed bug #1079530 (glutGetProcAddress
+ and geometric objects).
+ * ., .cvsignore, doc, doc/.cvsignore, include, include/.cvsignore,
+ include/GL, include/GL/.cvsignore, progs, progs/.cvsignore,
+ progs/demos, progs/demos/.cvsignore, progs/demos/CallbackMaker,
+ progs/demos/CallbackMaker/.cvsignore, progs/demos/Fractals,
+ progs/demos/Fractals/.cvsignore, progs/demos/Fractals_random,
+ progs/demos/Fractals_random/.cvsignore, progs/demos/Lorenz,
+ progs/demos/Lorenz/.cvsignore, progs/demos/One,
+ progs/demos/One/.cvsignore, progs/demos/shapes,
+ progs/demos/shapes/.cvsignore, src, src/.cvsignore: Improved
+ ignorance.
+
+2004-12-17 James Jones <puggles@users.sourceforge.net>
+
+ * src/freeglut_cursor.c, src/freeglut_display.c,
+ src/freeglut_internal.h, src/freeglut_menu.c, src/freeglut_misc.c,
+ src/freeglut_window.c: Some assertion changes / removals from Dr. John
+ Fay
+
+2004-10-06 Brian Paul
+
+ * src/freeglut_callbacks.c, src/freeglut_internal.h,
+ src/freeglut_joystick.c, src/freeglut_state.c: joystick init fixes
+ (John Fay)
+
+2004-10-05 Brian Paul
+
+ * src/freeglut_main.c: updated comments (John Fay)
+ * src/freeglut_init.c, src/freeglut_main.c, src/freeglut_window.c:
+ improved comments and mouse coord adjustments (John Fay)
+ * src/freeglut_init.c: more clean-ups, fixes from John Fay
+
+2004-09-23 Brian Paul
+
+ * src/freeglut_font.c, src/freeglut_stroke_mono_roman.c,
+ src/freeglut_stroke_roman.c: font updates from John Fay
+ * src/freeglut_main.c: more updates from John Fay
+ * src/freeglut_geometry.c, src/freeglut_init.c: assorted updates from
+ John Fay
+
+2004-09-15 James Jones <puggles@users.sourceforge.net>
+
+ * src/freeglut_init.c: Fix to glutInit() command-line argument
+ compaction - Patch #1027724 from takeshi2
+
+2004-09-13 Brian Paul
+
+ * src/freeglut_callbacks.c, src/freeglut_cursor.c,
+ src/freeglut_gamemode.c, src/freeglut_init.c, src/freeglut_internal.h,
+ src/freeglut_joystick.c, src/freeglut_main.c, src/freeglut_state.c,
+ src/freeglut_window.c: more updates from John Fay
+ * src/freeglut_cursor.c, src/freeglut_gamemode.c,
+ src/freeglut_geometry.c, src/freeglut_init.c, src/freeglut_internal.h,
+ src/freeglut_joystick.c, src/freeglut_main.c,
+ src/freeglut_structure.c, src/freeglut_teapot.c,
+ src/freeglut_window.c: some function renaming, etc (John Fay)
+
+2004-09-10 Brian Paul
+
+ * src/freeglut_callbacks.c, src/freeglut_init.c,
+ src/freeglut_internal.h, src/freeglut_main.c: joystick updates from
+ John Fay
+ * src/freeglut_cursor.c, src/freeglut_font_data.c,
+ src/freeglut_gamemode.c, src/freeglut_geometry.c, src/freeglut_init.c,
+ src/freeglut_internal.h, src/freeglut_joystick.c, src/freeglut_main.c,
+ src/freeglut_menu.c, src/freeglut_misc.c, src/freeglut_state.c,
+ src/freeglut_stroke_mono_roman.c, src/freeglut_stroke_roman.c,
+ src/freeglut_structure.c, src/freeglut_teapot.c,
+ src/freeglut_window.c: updated comments from John Fay
+
+2004-08-11 James Jones <puggles@users.sourceforge.net>
+
+ * src/freeglut_gamemode.c, src/freeglut_internal.h, src/freeglut_main.c:
+ Fix a game mode crashing bug, conditional compilation for Windows, and
+ comment out some diagnostic prints (John Fay)
+
+2004-08-05 James Jones <puggles@users.sourceforge.net>
+
+ * src/freeglut_window.c: Implements Richard Rauch's request that the
+ warning about indirect rendering contexts be suppressed for his BSD
+ operating systems.
+ * src/freeglut_teapot_data.h: Someone used C++ style comments in a C
+ file... tisk tisk...
+ * src/freeglut_font.c: Bugfix for "glutBitmapString" so that it now
+ handles end-of-line characters properly (Richard Rauch)
+ * README: Incremental update ... (John Fay)
+
+2004-06-29 Brian Paul
+
+ * src/freeglut_structure.c: give menu windows the title 'freeglut menu'
+ (helps Chromium)
+ * src/freeglut_window.c: move glXMakeCurrent() to after the point where
+ the window's title is set (helps Chromium)
+
+2004-05-13 James Jones <puggles@users.sourceforge.net>
+
+ * freeglut.dsp, freeglut_static.dsp: Add one more header file to MSVC
+ files
+
+2004-05-12 James Jones <puggles@users.sourceforge.net>
+
+ * include/GL/freeglut_ext.h, include/GL/freeglut_std.h: John Fay:
+ Direct/indirect rendering context change, fix a bug that somebody
+ reported (about needing "GLUT_XLIB_IMPLEMENTATION" defined) and remove
+ a false deprecation of a function.
+ * src/freeglut_main.c: John Fay: A bug fix re: behavior of the code when
+ the user clicks the "x" to close a window, and commentary to a message
+ type with fixes for a Windows event processing bug.
+ * src/freeglut_init.c, src/freeglut_internal.h, src/freeglut_state.c,
+ src/freeglut_window.c: John Fay: Implement the modified logic of the
+ direct/indirect rendering context.
+ * src/freeglut_font.c, src/freeglut_font_data.c: John Fay: Implement the
+ upper end of the bitmapped fonts (beyond ASCII code 127). The fonts
+ are very close to the GLUT fonts.
+ * src/freeglut_teapot.c, src/freeglut_teapot_data.h: John Fay: These
+ files implement the teapot for WINCE.
+ * src/freeglut_internal.h: John Fay: Remove some obsolete defined
+ symbols.
+ * freeglut.dsp, freeglut_static.dsp: John Fay: Add
+ "freeglut_glutfont_definitions.c" to the build and tell it to look in
+ the "include" directory for the <GL/freeglut.h> file.
+
+2004-03-28 Steve Baker <steve@sjbaker.org>
+
+ * progs/demos/shapes/shapes.c: Removed unnecessary initialisation.
+ * progs/demos/shapes/shapes.c: Added a cullface test.
+
+2004-03-22 drgoldie
+
+ * freeglut_evc4.vcp, src/freeglut_gx.cpp, src/freeglut_init.c,
+ src/freeglut_main.c: removed .cpp file (using LoadLibrary() instead)
+ removed modified gx.h file cleaned up all // and tabs
+
+2004-03-17 nigels
+
+ * src/freeglut_main.c: Prevent exceeding array bounds in X11 key-repeat
+ detection
+
+2004-03-16 drgoldie
+
+ * freeglut_evc4.vcp, src/freeglut_ext.c, src/freeglut_gx.cpp,
+ src/freeglut_init.c, src/freeglut_main.c, src/freeglut_misc.c,
+ src/freeglut_state.c, src/freeglut_window.c: replaced all tabs with 4
+ spaces replaced all // with /* */ block fixed freeglut_gx.cpp file
+ with #if TARGET_HOST_WINCE
+
+2004-03-16 nigels
+
+ * src/freeglut_init.c, src/freeglut_main.c, src/freeglut_state.c:
+ Whitespace conversion - tabs to 4 spaces
+ * src/freeglut_window.c: Revert X11 fgCloseWindow to 1.38 pre-offscreen
+ implementation.
+
+2004-03-15 drgoldie
+
+ * freeglut_evc4.vcp, src/freeglut_gx.cpp, src/freeglut_main.c: fixed
+ mouse position and keyboard mapping. added c-wrapper cpp file for
+ GAPI.
+ * freeglut_evc4.vcp, freeglut_evc4.vcw, include/GL/freeglut_std.h,
+ src/freeglut_cursor.c, src/freeglut_display.c, src/freeglut_ext.c,
+ src/freeglut_gamemode.c, src/freeglut_init.c, src/freeglut_internal.h,
+ src/freeglut_main.c, src/freeglut_menu.c, src/freeglut_misc.c,
+ src/freeglut_state.c, src/freeglut_window.c: added support for
+ WindowsCE (building on top of klimt)
+
+2004-03-15 nigels
+
+ * src/freeglut_main.c: Repeat-key handling for Win32 Utilise both
+ FreeGLUT state and per-window filtering modes
+
+2004-03-15 rkrolib
+
+ * ChangeLog: Forgot to update the ChangeLog for the benefit of those who
+ do not have CVS or Web access.
+ * configure.in, include/GL/freeglut_ext.h, src/freeglut_internal.h,
+ src/freeglut_window.c: Completed removal of all support for the
+ offscreen rendering.
+
+ If you wish to do offscreen supportin a portable manner, you will no
+ longer be able to do so with current versions of freeglut.
+ * progs/demos/Makefile.am: Removed Makefile support for the offscreen
+ demo.
+ * progs/demos/One/one.c, progs/demos/offscreen: Removed offscreen demo
+ program.
+
+2004-03-15 nigels
+
+ * src/Makefile.am: Provide local include path to automake for
+ GL/freeglut.h etc
+
+2004-03-14 nigels
+
+ * src/freeglut_window.c: Code formatting tweak
+ * src/freeglut_init.c, src/freeglut_internal.h, src/freeglut_main.c,
+ src/freeglut_misc.c, src/freeglut_state.c, src/freeglut_structure.c:
+ Resolution of X11 key-repeat handling
+
+ glutSetKeyRepeat is global to all FreeGLUT windows in the application
+ glutIgnoreKeyRepeat is a per-window over-ride
+
+ To avoid nasty global X11 state interaction, or GLUT-style event queue
+ filtering - the approach in FreeGLUT is to use the current key state
+ XQueryKeymap to detect and ignore KeyRelease/KeyPress pairs that are
+ auto-generated.
+
+ See also:
+ http://pyopengl.sourceforge.net/documentation/manual/glutSetKeyRepeat.3GLUT.xml
+ http://pyopengl.sourceforge.net/documentation/manual/glutIgnoreKeyRepeat.3GLUT.xml
+ * src/freeglut_callbacks.c, src/freeglut_cursor.c, src/freeglut_ext.c,
+ src/freeglut_font.c, src/freeglut_font_data.c,
+ src/freeglut_gamemode.c, src/freeglut_geometry.c,
+ src/freeglut_glutfont_definitions.c, src/freeglut_init.c,
+ src/freeglut_internal.h, src/freeglut_joystick.c, src/freeglut_main.c,
+ src/freeglut_state.c, src/freeglut_structure.c, src/freeglut_window.c:
+ Stripped out tabs and end-of-line whitespace Differences are in
+ whitespace only
+
+2004-03-10 nigels
+
+ * src/freeglut_window.c: Resolve [ 853044 ] FreeGLUT menus on Win32 in
+ task bar and ALT-TAB list CreateWindowEx(WS_EX_TOOLWINDOW,...)
+ extended style suppresses the popup menu window from the taskbar or
+ ALT-TAB list
+
+2004-03-08 nigels
+
+ * src/freeglut_init.c: ignoreKeyRepeat mode in FreeGLUT is TRUE by
+ default For compatibility with GLUT, the mode should be FALSE by
+ default This issues was probably undetected until now because
+ ignoreKeyRepeat didn't yet work.
+ * src/freeglut_main.c: Resolved bug #869765 glutIgnoreKeyRepeat() Fix
+ (Win32) glutIgnoreKeyRepeat now behaves correctly on Win32
+ * src/freeglut_internal.h: C++ style comment converted to C style
+ comment
+ * src/freeglut_callbacks.c, src/freeglut_cursor.c,
+ src/freeglut_display.c, src/freeglut_ext.c, src/freeglut_font.c,
+ src/freeglut_font_data.c, src/freeglut_gamemode.c,
+ src/freeglut_geometry.c, src/freeglut_init.c, src/freeglut_joystick.c,
+ src/freeglut_main.c, src/freeglut_menu.c, src/freeglut_misc.c,
+ src/freeglut_overlay.c, src/freeglut_state.c,
+ src/freeglut_structure.c, src/freeglut_teapot.c,
+ src/freeglut_videoresize.c, src/freeglut_window.c: Include freeglut
+ header via <GL/freeglut.h> rather than "../include/GL/freeglut.h" This
+ allows some additional flexibility with file layout. It should be the
+ responsibility of the build environment, rather than at source level.
+ This change tested on MSVC 6, cygwin and mingw32 gcc and Linux gcc.
+
+2004-03-03 nigels
+
+ * src/freeglut_joystick.c: According to John F. Fay: The variable
+ "num_axes" should be "joy->num_axes".
+
+2004-02-20 rkrolib
+
+ * src/freeglut_gamemode.c: Removed nonstandard #warning constructs.
+ Converted to XXX comments. (These are warnings about gamemode features
+ not working the same on some systems as on others. The semantics of
+ gamemode are dubious, since it was never formally documented, and has
+ for a long time worked in different ways on different systems, so it
+ is arguable that there is nothing really wrong with systems that don't
+ support resolution-changes.)
+ * src/freeglut_callbacks.c: Fixed the bug where glutDisplayFunc() was
+ effectively invoking glutPostRedsiplay(). This is wrong on the face of
+ it, and may be at root for some of the annoying "timing" issues we've
+ had with redisplay events being called inappropriately.
+
+2004-02-19 rkrolib
+
+ * progs/demos/offscreen/Makefile.am: I had rubbed the
+ offscreen/Makefile.am off from the shapes demo. I forgot to remove a
+ couple of references to the shapes.c and shapes.dsp (.dsw?) files.
+ * configure.in, include/GL/freeglut_ext.h, progs/demos/Makefile.am,
+ progs/demos/offscreen, progs/demos/offscreen/Makefile.am,
+ progs/demos/offscreen/offscreen.c: Added "offscreen" demo, a very
+ simple program that produces an onscreen window and, upon command,
+ renders a similar offscreen display and writes the result to disk.
+
+ Also, modified the build structure for UNIX_X11 to autobuild the demo.
+ (Not done for WIN32 at this time.)
+
+ Also, forgot to previously commit the updated freeglut_ext.h include.
+ Eeep.
+
+2004-02-18 rkrolib
+
+ * src/freeglut_window.c: Minor comment adjustments.
+
+2004-02-18 nigels
+
+ * src/freeglut_geometry.c: Refinements to comments
+
+2004-02-14 rkrolib
+
+ * src/freeglut_joystick.c: Normalized the style of the new joystick a
+ bit.
+ * src/freeglut_main.c: For some reason, the X "expose" event handler was
+ *directly* calling the display handler in the client. (Okay, it was
+ calling a function that operates on the window handle.)
+
+ If you have any complexity to the display code, this can be painful to
+ watch. I can't think of a good reason to do the display immediately,
+ so I fixed the code to do a glutPostRedisplay().
+ * src/freeglut_joystick.c: A commit on behalf of John (in turn, and in
+ part, also on behalf of Thierry).
+
+ * Renamed some of the old PLIB functions to have glut* prefixes. (I
+ guess that there is some thought about exporting them to the API.)
+
+ * Changes from Thierry for FreeBSD support, and/or results of testing?
+
+ * I re-merged an XXX comment re. NetBSD/amd64 and propogated a comment
+ on a duplicated #define for FreeBSD. We need the GNU autoconfig stuff
+ to be updated by someone who groks it, now.
+
+2004-02-09 rkrolib
+
+ * src/freeglut_init.c: Commit of John's tidying-up of a comment, closing
+ out an XXX comment that I wrote. Thanks, John.
+
+2004-02-07 rkrolib
+
+ * src/freeglut_window.c: ...AND a tab snuck into my changes for
+ GLUT_OFFSCREEN support. Mea culpa.
+ * src/freeglut_joystick.c: Removed a ^M that snuck into the #pragma for
+ the new joystick code.
+ * src/freeglut_window.c: Ooops. We don't want people to be able to
+ create a subwindow of an offscreen window. (^& This is no longer
+ permitted.
+
+ (Actually, it would be nice if it would work, but I don't think that
+ you can subwindow a pixmap in UNIX_X11, and assume that subwindowing
+ offscreen doesn't work on WIN32, either.)
+ * ChangeLog: Added entries for the joystick updates and the offscreen
+ experimental support.
+ * src/freeglut_joystick.c: Changed a couple of XXX comments. Added a new
+ one. These all the nest of #ifs in the BSD section of the new joystick
+ code.
+ * progs/demos/CallbackMaker/CallbackMaker.c: "Heavy editing" by John to
+ his CallbackMaker demo.
+ * src/freeglut_joystick.c: John added a #pragma to the joystick code for
+ WIN32 users.
+ * src/freeglut_internal.h, src/freeglut_window.c: Adds GLUT_OFFSCREEN as
+ a display mode option. This includes:
+
+ * Recognizing the mode when you call glutCreateWindow(). (Offscreen
+ looks and acts like a top-level window in many ways.)
+
+ * During the life of the offscreen "window", various window-management
+ functions are modified to respect offscreen status.
+
+ (Excepting reshaping windows, there is not much useful interpretation
+ for management of offscreen areas. Reshaping is possibly more work than
+ it's worth to support, and GLUT specs allow us to ignore the request.)
+
+ * Cleanup for "offscreen" windows is a little different than for
+ regular windows.
+
+ Windows still don't start up quite ideally. Offscreen windows should
+ probably get a reshape event, but not a display.
+
+2004-02-05 rkrolib
+
+ * src/freeglut_init.c, src/freeglut_joystick.c: Big import of updated
+ joystick code from PLIB, with permission from Steve Baker. Most of the
+ adaptation done by John, with a little bit of testing and changes by
+ Thierry Thomas and myself. Seems to compile on:
+
+ WIN32 Red Hat LINUX FreeBSD NetBSD/amd64
+
+2004-02-01 rkrolib
+
+ * src/freeglut_main.c: Close a bug whereby events can be delayed
+ arbitrarily long if they get caught between the socket and the
+ client-side queue on X, sometime after glutMainLoopEvent()'s loop
+ quits and before the sleep code is invoked.
+
+2004-01-16 rkrolib
+
+ * src/freeglut_main.c: Amended a comment on fgCheckJoystickCallback().
+ * src/freeglut_main.c: Minor style normalizations to minimize the diffs
+ between *now* and from before John's changes. No functional changes:
+
+ * Removed some hard TABs introduced. * Removed some
+ spaces-at-end-of-line introduced. * A couple of function calls were
+ touched up.
+
+ I did this separately only because I don't like messing with other
+ people's commits. (I don't like feeling like the style police, either,
+ but when I mess with the commit, there's no room for reverting my
+ interference if it is deemed undesirable...)
+ * src/freeglut_main.c: Some changes from John.
+
+ The main attraction seems to be correcting a bug with the action-on-
+ window-close.
+
+2004-01-05 nigels
+
+ * src/freeglut_main.c, src/freeglut_window.c: Win32 glutIconifyWindow()
+ patch contributed by John F. Fay Restrict resize callbacks to visible
+ windows When iconified via glutIconifyWindow(), don't pass (0,0) to
+ resize callback Note that minimising the window via the menu or
+ minimise button is not yet resolved.
+
+2003-12-30 rkrolib
+
+ * src/freeglut_main.c, src/freeglut_menu.c, src/freeglut_structure.c:
+ Split a few overlong lines.
+
+ Adjusted some spacing in a few spots to be more consistent with
+ freeglut style. Including one unindented if() body.
+
+ Eliminated a dead variable.
+ * src/freeglut_joystick.c: Changed several #ifdef's to proper #if's.
+ Eeek. Oook.
+ * src/freeglut_main.c: Hm... I thought that I committed this last night.
+ What's up?
+
+ This is Nigel's modified fgSleepForEvents(), essentially. Take 2.
+
+2003-12-30 nigels
+
+ * include/GL/freeglut_std.h: Three supported win32 compilation
+ environments: MSVC, Cygwin and MingW32 #pragma is specific to MS
+ compiler
+ * src/freeglut_internal.h: Explicitly cast function pointer to (void *)
+ in SET_WCB since all callbacks stored as void pointers suppress gcc
+ -Wall -pendantic "noise"
+ * src/freeglut_structure.c: Typesafe handling of temporary window
+ destroy callback Move assignment out of while test, scope temporary
+ inside loop Be explicit about assignment/comparison in if test for gcc
+ peace of mind suppress gcc -Wall -pendantic "noise"
+ * src/freeglut_internal.h: Three supported win32 compilation
+ environments: MSVC, Cygwin and MingW32 The windows mmsystem header
+ need only be included internally to freeglut strdup vs _strdup is
+ specific to the MS compiler
+ * src/freeglut_font.c: strlen expects (char *), rather than (unsigned
+ char *) suppress gcc -Wall -pendantic "noise"
+ * src/freeglut_cursor.c: Replace assignment of array to struct with
+ field-by-field assignment suppress gcc -Wall -pendantic "noise"
+ * src/freeglut_menu.c: glutBitmapString and glutBitmapLength expect
+ (unsigned char *) rather than (char *) suppress gcc in -Wall
+ -pendantic "noise"
+ * src/freeglut_joystick.c: Replace #ifdef WIN32 with #ifdef
+ TARGET_HOST_WIN32, as per FreeGLUT convention
+ * src/freeglut_init.c: fgState.FPSInterval is unsigned int (GLuint),
+ environment variable GLUT_FPS can be negative
+ * src/freeglut_window.c: OpenGL context is not made current on Win32
+ until fgSetWindow is called. This resolves severe problems observed in
+ GLUI applications.
+ * src/freeglut_window.c: #pragma message is only understood my MS
+ compiler #if defined(_MSC_VER) .. #endif
+ * src/freeglut_state.c: Resolve bug 864978 - GLUT_OWNS_JOYSTICK
+ unhandled
+ * src/freeglut_main.c: Tidy nested if/else to suppress gcc -Wall
+ -pedantic noise gcc suggests explicit braces to avoid ambiguous `else'
+
+2003-12-25 rkrolib
+
+ * progs/demos/CallbackMaker/CallbackMaker.c,
+ progs/demos/Fractals/fractals.c,
+ progs/demos/Fractals_random/fractals_random.c: Configuring with
+ "--enable-warnings" broke three demos: * CallbackMaker defined, but
+ did not use, the Joystick() function (a callback for the freeglut
+ joystick interface). I uncommented the callback-registration. I assume
+ that it was commented out because it was spammy. (freeglut does
+ joysticks by polling with a timer.) Perhaps a longer interval than
+ 10ms would be advisable?
+
+ * fractals.c used strcpy() without getting the prototype. Added
+ #include <string.h> at the top.
+
+ * fractals_random.c had the same problem as fractals.c.
+
+2003-12-23 rkrolib
+
+ * src/freeglut_main.c: Moved the window-resize code so that it happens
+ whenever there is a pending resize for the window, whether or not the
+ window is visible or in need of a redisplay. The resize is now done
+ before the visibility and need-to-redisplay checks.
+
+2003-12-22 rkrolib
+
+ * src/freeglut_structure.c: Got rid of those int/ptr warnings on AMD64.
+ (The code was casting an {int} to a pointer, and later retrieving the
+ int by another cast. It should be safe provided that pointers are at
+ least as big as {int}, but GCC was giving warnings on my system,
+ so...fixed.)
+ * src/freeglut_main.c, src/freeglut_structure.c: Several
+ test-on-assignment cases have been converted to stop GCC from
+ complaining about if( a = get_a_value_for_a( ) ) type code.
+
+2003-12-19 rkrolib
+
+ * src/freeglut_internal.h: Ooops, left some cruft in a comment in the
+ header when committing the last patch. Cleaned up.
+ * src/freeglut_callbacks.c, src/freeglut_internal.h,
+ src/freeglut_structure.c: Wrote SET_WCB() to set a window callback.
+ This lets us out of using the FETCH_WCB() as an lvalue (which it
+ shouldn't, since the value of the FETCH is cast to the correct
+ function-pointer type).
+
+2003-12-15 James Jones <puggles@users.sourceforge.net>
+
+ * progs/demos/Fractals/Fractals.dsp: Change the destination directory of
+ the debug version to "Debug" (John Fay)
+
+2003-12-13 James Jones <puggles@users.sourceforge.net>
+
+ * ChangeLog: Release 2.2.0
+
+2003-12-11 rkrolib
+
+ * src/freeglut_main.c, src/freeglut_window.c: Stripped out TABs that got
+ reintroduced.
+
+ There were no changes other than replacing about 10 to 12 TABs with a
+ visually-suitable number of spaces, so this can probably be blindly
+ treated as equivalent to the previous versions of the two affected
+ files.
+
+2003-12-11 Christopher John Purnell
+
+ * src/freeglut_internal.h, src/freeglut_structure.c: The deferred window
+ destruction code was destroying the windows in reverse order. This
+ cased a crash when the call to glutDestroyWindow() for a sub windows
+ was immediately followed by a call to glutDestroyWindow() for it's
+ parent. fgCloseWindows() would call fgDestroyWindow() for the parent
+ first fgDestroyWindws() would recurse over the children and then
+ fgCloseWindows() would call fgDestroyWindow() again for the child.
+
+ I've replaced the single linked list with one of our two way link list
+ structures. I've also moved it into fgStructure because that seemed
+ the consistent thing to do.
+
+ I said the the deferred windows destruction causes more problems then
+ it solves.
+
+2003-12-11 James Jones <puggles@users.sourceforge.net>
+
+ * progs/demos/CallbackMaker/Makefile.am: Include project file in the
+ distribution.
+ * ChangeLog: Updates for 2.2.0 RC2
+ * progs/demos/demos.dsw: Add shapes to the Visual C workspace.
+ * progs/demos/shapes/Makefile.am: Package the visual C project file with
+ the distribution
+ * configure.in: Set the version to 2.2.0
+ * src/freeglut_gamemode.c, src/freeglut_main.c, src/freeglut_window.c:
+ Nigel Stewart's Win32 window-sizing fix for game mode
+ * progs/demos/One/one.c: Disable/enable lighting in the "one.c" demo
+ (John Fay)
+ * progs/demos/CallbackMaker/CallbackMaker.dsp: Add some essentials to
+ get this program to compile (Nigel)
+ * src/freeglut_internal.h: Update to reflect 2.2.0 release
+ * ChangeLog: Note the release of 2.2.0 RC1
+
+2003-12-11 rkrolib
+
+ * src/freeglut_structure.c, src/freeglut_window.c: John correctly
+ observed that the initialization {OldHeight} and {OldWidth} in the
+ window structure should be done for both windows and sub-windows, and
+ the easiest way to do this is in the
+ freeglut_structure.c:fgCreateWindow() code. So, transplant one line.
+
+2003-12-10 rkrolib
+
+ * src/freeglut_main.c: Commit of John's change to stop an infinite-loop
+ condition when the only windows left are freeglut menu windows, and
+ correctly calls exit() if we drop out of the main loop without having
+ requested any freeglut extensions to glutMainLoop() handling.
+
+2003-12-07 rkrolib
+
+ * progs/demos/shapes/shapes.c, progs/demos/shapes/shapes.dsp: Two from
+ Nigel:
+
+ * Updated shapes.c. I think that it's just reformatting and the
+ addition of some comments.
+
+ * Added shapes.dsp, a Microsoft Visual C++ Developer Studio Project
+ file for building shapes on WIN32 with MSVC++.
+
+2003-12-03 Christopher John Purnell
+
+ * configure.in: Added an option to enable gcc compiler warnings. I've
+ explicitly excluded the one about adding parentheses.
+
+2003-12-03 rkrolib
+
+ * src/freeglut_main.c: Touched up several comments, pointing up things
+ that may be worth reflect- ing upon in the future.
+ * src/freeglut_internal.h, src/freeglut_main.c, src/freeglut_window.c:
+ Hrm. I misunderstood the purpose of {window->State.Width} and
+ {...Height}. Those are *not* records of the old values, but rather of
+ the *desired* *new* values, hence it was inappropriate to use them in
+ ConfigureNotify X11 event handling. Doing so introduced some new
+ problems.
+
+ So, I created OldHeight and OldWidth in the window State structure,
+ and *those* do what I require.
+
+ I also stripped out the obsolete comment about getting extra/bogus
+ reshape events. (Though I maintain that an application should be
+ robust against them, freeglut should no longer generate them if the
+ window has not changed size since last reported.)
+
+2003-12-02 rkrolib
+
+ * src/freeglut_main.c: Changed Create/ConfigureNotify handling in
+ UNIX_X11:
+
+ * Just need to call GETWINDOW() once. Ooops. Heh. * Update
+ {window->State} with the new size of the window. * If the window-size
+ has NOT changed, then do NOT call the Reshape event.
+ * src/freeglut_main.c: Added an "XXX" earmark for post-release
+ contemplation. (The point is definitely in need of consideration, I
+ believe, but is not immediately a major bug, so I'd rather not mess
+ with it at the risk of postponing a release "soon".)
+ * src/freeglut_main.c: Ensure that the time-out for sleeping is never
+ negative.
+ * src/freeglut_main.c: Fixed a bug for UNIX_X11 where window reshape
+ events were causing freeglut to mark the window as *needing* a reshape
+ (which during general display callback handling would result in
+ effectively a glutReshapeWindow()).
+
+ The code is now system-dependent. It should be abstracted to a
+ function, but is presently copied in two places. Sorry.
+
+ Also, inverted the order of the associated if()/else check (in both
+ WIN32 and UNIX_X11 branches) since the former "else" part was a
+ one-line callback invocation.
+
+ This fixes two seemingly unrelated bugs that I was seeing in UNIX_X11.
+
+2003-12-01 Christopher John Purnell
+
+ * src/freeglut_internal.h: Added missing prototype for new list
+ function.
+
+2003-11-28 Christopher John Purnell
+
+ * src/freeglut_init.c, src/freeglut_internal.h, src/freeglut_main.c,
+ src/freeglut_structure.c: Timer optimizations. Made the list of
+ pendinig timers ordered. Added a free list of used timer structures.
+ * src/freeglut_callbacks.c: Timer optimizations.
+ * src/freeglut_window.c: Fixed windows compilation problem with last
+ update.
+
+2003-11-27 Christopher John Purnell
+
+ * src/freeglut_gamemode.c, src/freeglut_internal.h, src/freeglut_main.c,
+ src/freeglut_structure.c, src/freeglut_window.c: Window close fix. The
+ default behaiour should now be the same as with glut.
+
+2003-11-26 rkrolib
+
+ * src/freeglut_init.c: Added change from Nigel to have resize events
+ cause redraw events in WIN32. Also slightly reshuffled comments to
+ deal with line-wrap issues.
+
+2003-11-25 rkrolib
+
+ * src/freeglut_main.c: John reported, and fixed, a problem that recent
+ changes caused for the Lorenz demo (seems to be WIN32 specific).
+ * src/freeglut_structure.c: Update from John: Removed the freeglut hack
+ of decrementing the highst-window-ID marker when the highest window is
+ deleted. (This was a half-way measure for an idea that was decided to
+ be dubious in the first place.)
+ * configure.in, progs/demos/Makefile.am, progs/demos/shapes,
+ progs/demos/shapes/Makefile.am, progs/demos/shapes/shapes.c: Added a
+ new demo (from Nigel) showing some of the basic GLUT geometry shapes.
+ "shapes" is the name of the demo.
+ * include/GL/freeglut_ext.h, src/freeglut_geometry.c: Commit of work
+ from Nigel:
+
+ Massive rework of the geometric primitive code. Includes a new
+ primitive (cylinder; solid and wireframe) and corresponding update to
+ freeglut_ext.h for the prototype.
+ * src/freeglut_internal.h, src/freeglut_main.c,
+ src/freeglut_structure.c: More work from John (sorry for
+ procrastinating):
+
+ * We forgot to bump our version number in freeglut_internal.h It is
+ now at 2.0.2 (actually, I think that 2.1.0 might be a better choice),
+ which is presumably going to be our next formal release. 2.0.1 is
+ incorrectly identified as 2.0.0 in the header.
+
+ * A typo in a comment has been corrected ("than"/"that").
+
+ * Numerous "manual" checks for callbacks are omitted now, since
+ INVOKE_WCB() does this for us. These were holdovers from the
+ pre-INVOKE_WCB() days. There may be some very subtle changes in
+ freeglut behavior, since freeglut used to test the callbacks a little
+ earlier in some cases and may have skipped some minor things (like
+ changes to the current window) in some special cases, otherwise. It is
+ not believed that any documented behavior is broken, and it is
+ unlikely---not to say impossible---that any extant applications will
+ detect the change. It is even possible that there is no external
+ behavioral change in freeglut.
+
+ This also significantly simplifies some sections of code that used to
+ have conditional execution. "Unconditional code is simpler code" as
+ one of the comments used to say.
+
+ * Lots of XXX commentary is now removed. Some of it was obsoleted by
+ other changes, some by changes from John.
+ * src/freeglut_internal.h, src/freeglut_main.c,
+ src/freeglut_structure.c: Change from John (I removed a couple of
+ spaces from a couple of lines in his freeglut_internal.h file where
+ they were wrapping in EMACS; otherwise, the files are exactly as he
+ sent them to me).
+
+ The change unifies the WIN32 and UNIX_X11 code by defining our own
+ window-handle-type in freeglut_internal.h. This let John rip out some
+ #if garbage in several places. The result is clearer code.
+
+ Thanks, John!
+
+2003-11-21 rkrolib
+
+ * src/freeglut_font.c, src/freeglut_geometry.c,
+ src/freeglut_glutfont_definitions.c, src/freeglut_init.c,
+ src/freeglut_internal.h, src/freeglut_main.c, src/freeglut_menu.c,
+ src/freeglut_misc.c, src/freeglut_state.c, src/freeglut_structure.c,
+ src/freeglut_window.c: Numerous style normalizations from John:
+
+ * Convert "return( value );" to "return value;" * Normalize spacing
+ around semicolons. * Remove extraneous parens. * Split multi-statement
+ lines into multiple lines. (Mostly things of the form: "if( condition
+ ) return;".)
+ * src/freeglut_internal.h, src/freeglut_main.c, src/freeglut_window.c:
+ All changes are from John, except for: (a) I re-inserted the meat of a
+ comment that I still feel is relavent. (b) I fixed a compile-time
+ error in the UNIX_X11 code where a variable is declared after
+ executable code in a block without creating a new sub-block for the
+ declaration.
+
+ Changes from John include: (a) Style revision. (b) Changes to postpone
+ the handling of window resizes.
+
+ Lots of lines were changed, but I think that thos two cover the ground
+ that he hit. See the diffs for details.
+
+2003-11-18 Christopher John Purnell
+
+ * src/freeglut_cursor.c, src/freeglut_ext.c, src/freeglut_geometry.c,
+ src/freeglut_init.c, src/freeglut_internal.h, src/freeglut_main.c,
+ src/freeglut_menu.c, src/freeglut_state.c, src/freeglut_structure.c:
+ Lots of stuff that John F. Fay pointed out. Plus some changes to
+ remove gcc warnings.
+
+2003-11-17 Christopher John Purnell
+
+ * src/freeglut_init.c, src/freeglut_internal.h, src/freeglut_main.c,
+ src/freeglut_state.c, src/freeglut_structure.c: Fix spelling mistake
+ in a variable name. Added a comment for John Fay. Added the copyright
+ notice for XParseGeometry source.
+
+2003-11-16 Christopher John Purnell
+
+ * src/freeglut_init.c, src/freeglut_internal.h, src/freeglut_main.c,
+ src/freeglut_state.c, src/freeglut_structure.c: Made Modifers variable
+ global as per glut classic.
+ * src/freeglut_init.c: Removed old unused glutInitDisplayString code.
+ Reformated new glutInitDisplayString and XParseGeometry code.
+ * src/freeglut_init.c: Use XParseGeometry for better geometry parsing.
+ Moved geometry parsing to after fgInitialize() so we can use the
+ screen size to correctly calculate negative positions in the geometry
+ string. Copied the code for XParseGeometry from the X11 sources for
+ use in the Win32 version. freeglut now passes test1 of the glut test
+ suite.
+
+2003-11-15 Christopher John Purnell
+
+ * src/freeglut_gamemode.c, src/freeglut_init.c, src/freeglut_internal.h,
+ src/freeglut_main.c, src/freeglut_structure.c, src/freeglut_window.c:
+ Removed the state variable BuildingAMenu. Instead pass a new parameter
+ isMenu to fgCreateWindow(). Elsewhere use window->IsMenu.
+ * src/freeglut_init.c: freeglut_assert_ready is going to have to go at
+ some point. But for now I've moved setting fgState.Initalized to
+ GL_FALSE.
+ * src/freeglut_callbacks.c, src/freeglut_display.c,
+ src/freeglut_gamemode.c, src/freeglut_init.c, src/freeglut_internal.h,
+ src/freeglut_joystick.c, src/freeglut_main.c, src/freeglut_menu.c,
+ src/freeglut_misc.c, src/freeglut_state.c, src/freeglut_structure.c,
+ src/freeglut_window.c: Replace TRUE with GL_TRUE and FALSE with
+ GL_FALSE where the type is GLboolean.
+
+2003-11-15 rkrolib
+
+ * src/freeglut_main.c, src/freeglut_menu.c: Normalized the spacing
+ around symbols, for the most part. Ho-hum.
+
+2003-11-15 Christopher John Purnell
+
+ * src/freeglut_main.c: Added a call to fgDeinitialize() before the call
+ to exit() in fgError().
+
+2003-11-15 rkrolib
+
+ * src/freeglut_joystick.c: Style normalizations to the joystick code.
+
+2003-11-15 Christopher John Purnell
+
+ * src/freeglut_init.c, src/freeglut_internal.h, src/freeglut_main.c,
+ src/freeglut_state.c, src/freeglut_structure.c, src/freeglut_window.c:
+ Added a new state variable "Initalized". Replaced referenced to
+ Time.Set with this new variable where appropriate. fgElapsedTime() now
+ set the start time if Time.Set is false. Moved
+ glutGet(GLUT_ELAPSED_TIME) handling to before the assert.
+
+2003-11-14 rkrolib
+
+ * src/freeglut_internal.h: Normalized the internal header's style a bit.
+ * src/freeglut_init.c: Plowed one more file this morning. Still just
+ trivial formatting issues.
+
+ And I left alone the "INIT DISPLAY STRING PARSING" section, since it
+ still appears to be in flux.
+ * src/freeglut_font.c, src/freeglut_gamemode.c: Yet more trivial style
+ normalizations.
+
+ Sorry, but that's all that I'm up to at the moment. On the plus,
+ excepting the font_data file (which I've been skipping), up through
+ this file, I think that the code style is pretty close to uniform.
+ * src/freeglut_font.c: Minor style corrections.
+ * src/freeglut_display.c: Minor spacing quibble.
+ * src/freeglut_cursor.c: Added a brief explanatory note to the X code
+ for GLUT_CURSOR_NONE.
+
+ Corrected the indentation of a block of code.
+ * src/freeglut_window.c: Noted one of a few cases where we do something
+ immediately that could more efficiently be postponed, quite
+ easily---and which GLUT promises *is* to be postponed. (It is unlikely
+ that the difference will break any apps, but postponing should be
+ easy...)
+
+ No real change, just a comment in the code.
+
+2003-11-11 rkrolib
+
+ * ChangeLog: Updated ChangeLog for the day.
+ * include/GL/freeglut_std.h, progs/demos/One/one.c, src/freeglut_ext.c,
+ src/freeglut_font.c: Removal of all remaining TABs in the freeglut
+ *.[ch] files. (I missed a few in the "one" demo, it seems, and some
+ more crept back into freeglut_(ext|font).c, presumably due to my own
+ edits when I forgot to use the "freeglut-c-mode" in EMACS.)
+ * progs/demos/One/one.c: Moved glutInit*() functions ahead of
+ glutInit(). (This is proper use of glutInit() in general, since it
+ allows the user to override settings via {argc, argv} command-line
+ params.)
+ * progs/demos/One/one.c: Style normalizations: Removed CRs and hard TABs
+ mostly.
+ * ChangeLog, src/freeglut_structure.c: Corrected the numbering of the
+ ChangeLog (there were two (110)s).
+
+ Added entries summarizing my commits since September or late August,
+ for the benefit of those lacking both CVS and web access.
+ * progs/demos/demos.dsw: Added CRs to the ends of all lines in MS
+ developer studio demos.dsw file..
+
+2003-11-10 rkrolib
+
+ * src/freeglut_main.c: John's fix for the minimize/close/maximize
+ controls no longer working. WIN32 expected us to pass the message on
+ up the chain (or do something else with it), rather than just throwing
+ away the event, for a certain class of events. (See the diffs for more
+ details.)
+
+ The code is also slightly reformatted from what was previously in the
+ repository.
+ * freeglut.dsp, freeglut_static.dsp,
+ progs/demos/CallbackMaker/CallbackMaker.dsp, progs/demos/demos.dsw: A
+ *.dsp file for CallbackMaker in the demos.
+
+ Plus updated *.dsp and *.dsw files to reflect the new freeglut header
+ file.
+
+ NOTE: The prior version of the *.dsw file does not in fact have CRs. I
+ thought that it did. For consistency, I am not putting them in in this
+ version, either. (At least one person said that his MSVC++ system is
+ happy with the current files. If there are problems, we can easily add
+ the CRs, but that should be a separate commit...)
+ * configure.in, progs/demos/CallbackMaker,
+ progs/demos/CallbackMaker/CallbackMaker.c,
+ progs/demos/CallbackMaker/Makefile.am,
+ progs/demos/Fractals_random/fractals_random.c,
+ progs/demos/Makefile.am: New demo from John: CallbackMaker.
+
+ This demo shows the use of every callback that you can register with
+ freeglut, and also generates event reports so that you can see what is
+ happening to the program as it runs.
+
+ Not much to look at, but both utilitarian and a practical example.
+
+ Please double-check that I updated everything that needs to be
+ updated. I reran autogen.sh and ./configure, and it built okay for me.
+ (^&
+ * src/freeglut_structure.c: Hm. I thought that I already hit this file
+ for style normalization. Oh well... Should be no functional changes.
+ Should be pretty close to in-line with the style of changes that I've
+ been making else- where.
+ * src/freeglut_structure.c: Ooops. Forgot that we already had a call to
+ fgClearCallBacks() in the code and added a second one. I just deleted
+ the new one. Sorry.
+ * src/freeglut_structure.c: Added Nigel's suggested code to clear all
+ but the destroy callback early on, leaving Destroy to be cleared later
+ after the last possible point where it should be invoked.
+ * src/freeglut_menu.c: Modified the menus to refer to {border} rather
+ than {FREEGLUT_MENU_BORDER}, in fghDisplayMenuBox(). The local
+ variable was already defined and used for some purposes, so we might
+ as well use it throughout. It does serve to shorten and clarify the
+ code a bit---though I have mixed feelings about creating aliases that
+ way.
+
+ Still, the variable already existed and was already used in places.
+ (We could even move it into the freeglut state, or make it a {const
+ static} value...)
+
+ Oh well. Stuff to ponder.
+ * src/freeglut_cursor.c: Well, a couple of days have gone by, so I
+ assume that items (a) and (b) in the freeglut_cursor.c file's "Open
+ issues" comment are now satisfactor- ily closed.
+
+ I also partially implemented some error-checking, using my limited
+ understanding of how Xlib users are supposed to do this. (No one
+ commented about the lack of error-checking, pro or con. Perhaps
+ someone will care to comment now?)
+
+ At present, it just will print out a warning, via fgWarning(). In part
+ because I'm not sure what is best to do, and in part because failure
+ to set the cursor type is probably not a fatal problem.
+
+2003-11-08 Christopher John Purnell
+
+ * progs/demos/Fractals/Makefile.am,
+ progs/demos/Fractals_random/Makefile.am,
+ progs/demos/Lorenz/Makefile.am, progs/demos/One/Makefile.am: Applied
+ Braden McDaniel's non-srcdir build patch.
+
+2003-11-08 rkrolib
+
+ * src/freeglut_menu.c: A first pass over freeglut_menu.c to bring it in
+ line with the rest of freeglut's style. Mostly re-indenting and
+ splitting long lines. For those that may be concerned: No, I didn't do
+ any more arrangements of the form (CONST == a) rather than (a ==
+ CONST). (^&
+ * progs/demos/Fractals_random/fractals_random.c: Altered the way that
+ the {random} value (from 0..3) is chosen.
+
+ Previously, it picked out two adjacent bits in the result of rand().
+ Unfortunately, these adjacent bits (at least on NetBSD) have a certain
+ amount of dependence. After a period (perhaps a thousand or so?), it
+ starts to repeat the pattern of those two bits. (I think; I haven't
+ actually tested that directly.) This presumably is locking it into a
+ an an N-way attractor on the "snowflake", such that if you zoom in a
+ ways, you will start to see some spots *quickly* are colored, and
+ others are *never* colored.
+
+ What I've done now is to pick up two widely-spaced bits in a single
+ rand() call. (Perhaps we would do as well to pick up something like
+ bit #16 from two consecutive rand() calls?) These widely-spaced bits
+ have a lower statistical dependence on one another (if I can get away
+ with using that term for an arithmetic operation; though since stats
+ has more to do with sampling and less to do with true randomness, I
+ may be safe).
+
+ The net effect, at leats on NetBSD, is far better snowflake if you
+ zoom in on it.
+
+2003-11-07 rkrolib
+
+ * src/freeglut_main.c: From John:
+
+ [This] implements the visible/invisible for Windows. It does NOT call
+ the visibility callback, though.
+ * src/freeglut_main.c: Stripped out the now truly extraneous {braces} in
+ such forms as:
+
+ if( ... ) { INVOKE_WCB( ... ); }
+
+ Check for compiling on WIN32.
+ * src/freeglut_internal.h: Adopted Eero Pajarre's suggestion of using a
+ do { ... } while rather than { ... } for the INVOKE_WCB() macro. This
+ lets it be used "more like a function", in that:
+
+ if( ... ) INVOKE_WCB( ... ); else ...
+
+ ...is now legal.
+ * src/freeglut_main.c: Pure code janitoring: Shuffled the order of some
+ of the case statements in the UNIX_X11 X event processing loop. (In
+ general, it's nice to have case statements sorted, especially when you
+ have a *huge* switch statement like this. That makes it easier to find
+ the one that you're looking for, and to see if a certain case is
+ defined...)
+ * src/freeglut_main.c: Combined EnterNotify and LeaveNotify event
+ processing in the UNIX_X11 event loop.
+ * src/freeglut_main.c: Added ReparentNotify case to UNIX_X11 event loop,
+ to catch the extraneous ReparentNotify event types (type 21).
+ * src/freeglut_internal.h, src/freeglut_structure.c: Oh well, I might as
+ well add the call to clear callbacks on window destruction. Also
+ renamed the function to do this: fgClearCallBacks(). Ho-hum.
+ * src/freeglut_internal.h, src/freeglut_structure.c: Added
+ fgInitCallBacks() to freeglut_structure.c. (The function takes an
+ {SFG_Window *}.) Added prototype to freeglut_internal.h. Added use of
+ the function to the window initialization. (Don't count on calloc(),
+ which sets all bits to 0.)
+ * src/freeglut_gamemode.c: Style normalization; removal of
+ say-nothing-useful comments.
+ * src/freeglut_font.c: Normalized the style of freeglut_font.c No
+ substantial alterations.
+ * src/freeglut_ext.c: Somewhat normalized the style of this file.
+
+ Also moved the "glutMouseWheelFunc" extension down into the
+ "extensions" part of the table. (Purely internal organization. It will
+ still be found.)
+ * src/freeglut_display.c: Further normalization of the code's style. No
+ substantial changes.
+ * src/freeglut_cursor.c: Split one last overlong line in
+ freeglut_cursor.c.
+ * src/freeglut_cursor.c: Added GLUT_CURSOR_NONE support in UNIX_X11
+ (well, NetBSD; you lot need to try it on others; (^&).
+
+ Deallocated some resources that we are creating. VERY slight memory
+ leak, but plugged now.
+
+ These two complete the first two "Open issues" ( (a) and (b) ). The
+ first one also completes X support for glutSetCursor(). If others can
+ verify, we can fully demote the outstanding bug over this to
+ WIN32-specific.
+
+ I'll delete the dead Open issues and re-letter the others if someone
+ will cross-check me. Or if no one says anything in a day or two. (^&
+ * src/freeglut_cursor.c: Further normalized the style of the cursor
+ code.
+ * src/freeglut_callbacks.c: Slight style improvements. Two rules of
+ thumb that are almost always good to apply:
+
+ * Don't write a == CONST. Instead, write CONST == a. Or, more
+ generally (in C like languages): Avoid putting an lvalue on the
+ left-hand side of an == comparison. (For consistency, I try to avoid
+ lvalues on the left- hand side of any comparison---but == is the most
+ notorious.)
+
+ (An "lvalue" is a value that can safely go on the left side of an "="
+ assignment, of course. (^&)
+
+ * Do not write if( !condition ) return; other_thing; return;
+
+ (See page 18 of K&P's _The Elements of Programming Style_.)
+
+ Instead, it is better to just write:
+
+ if( condition ) other_thing; return;
+
+ There are times when sacrificing structured programming (e.g., via
+ multiple return statements) is okay. But, here, there is no apparent
+ gain---indeed, there seems only loss---in the non-structured code.
+ * src/freeglut_main.c: Grr. Forgot to enable the "freeglut" C
+ programming mode in EMACS, and had a few TABs in the last commit. This
+ fixes that. Sorry.
+ * src/freeglut_main.c: Minor corrections to the UNIX_X11 mouse-wheel
+ support. In part this reflects that {button} is already shifted to the
+ GLUT numbering, and hence should be counted as 3&4, 5&6, etc.
+
+ The other change was simply to clarify the computation of {direction}.
+ The original code did some clever arithmetic. The new code is more
+ straightforward, even if it requires more lines to express.
+
+2003-11-06 rkrolib
+
+ * src/freeglut_main.c: Ooops. I screwed up on part of John's fixes.
+ Sorry.
+
+ I think that I have his fix properly committed now. Mea culpa.
+ * src/freeglut_callbacks.c, src/freeglut_internal.h,
+ src/freeglut_main.c, src/freeglut_structure.c: Cleanup pass after
+ committing callback conversion (from structure to array-of-pointers).
+ Mostly deleted commented-out struct-based code. Also added some XXX
+ comments that I though should be pondered. (My own pair of eyes, and
+ one brain cell, were not sufficient at this time to decide what to do
+ for those ponderables. (^&)
+ * src/freeglut_callbacks.c, src/freeglut_init.c,
+ src/freeglut_internal.h, src/freeglut_joystick.c, src/freeglut_main.c,
+ src/freeglut_misc.c, src/freeglut_structure.c: Converted the
+ "Callbacks" structure (with named members holding individual 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.
+ * src/freeglut_main.c: From John, a couple of lines needed to be changed
+ to fix the mouse wheel support on WIN32.
+ * progs/demos/Fractals_random/fractals_random.c: Update from John:
+ Includes mouse button, mouse motion, and mouse wheel support.
+
+2003-11-04 rkrolib
+
+ * src/freeglut_menu.c: Multiple changes from John. Style issues, plus a
+ bug-fix to check a pointer before deallocating some memory.
+
+ He also removed one obsolete comment, and added some more comments.
+ * src/freeglut_main.c: Some changes, mostly from John. Mostly style
+ changes.
+
+ One bug fix from John: Execution state bug-fix in glutMainLoop(), per
+ his post yesterday.
+
+ One fix from me: Changed "if( ButtonPress )" to "if( pressed )".
+ {ButtonPress} is a constant.
+ * progs/demos/Fractals_random/fractals_random.c: Per John's emailed
+ desire to have all files obey UNIX EOL conventions, I have stripped
+ out carriage returns from this file.
+
+ This is the *only* change, but every line is touched. If you want to
+ see the real differences between older and newer versions, you will
+ have to get local copies of each and first match their EOL
+ convnetions.
+ * progs/demos/Lorenz/lorenz.c: Update from John:
+
+ I [John] added a feature to check for memory leaks under Windows.
+ * progs/demos/Fractals_random/fractals_random.c: Update from John:
+
+ I [John] converted everything to double precision to avoid compiler
+ warnings. I also added a feature to check for memory leaks under
+ Windows and removed a memory leak (surprise!).
+ * src/freeglut_callbacks.c, src/freeglut_cursor.c,
+ src/freeglut_display.c, src/freeglut_ext.c, src/freeglut_font.c,
+ src/freeglut_gamemode.c, src/freeglut_geometry.c,
+ src/freeglut_glutfont_definitions.c, src/freeglut_init.c,
+ src/freeglut_joystick.c, src/freeglut_main.c, src/freeglut_menu.c,
+ src/freeglut_misc.c, src/freeglut_overlay.c, src/freeglut_state.c,
+ src/freeglut_structure.c, src/freeglut_teapot.c,
+ src/freeglut_videoresize.c, src/freeglut_window.c: Got rid of the
+ G_LOG_DOMAIN junk, per discussion on the mailing list.
+ * src/freeglut_callbacks.c: Minor formatting quibbles. (The brain isn't
+ up to anything more serious at the moment.)
+ * src/freeglut_main.c: Missed a block where one level was 2-space
+ indented.
+
+ Nit-picked a few other lines for consistency.
+
+2003-11-03 rkrolib
+
+ * src/freeglut_init.c: Fixed a memory leak (thanks for the correction,
+ John!).
+
+ Smoothed over some code style issues while I was here, but left the
+ init-string parsing alone for now.
+ * freeglut13.dsp, freeglutdll.dsp, freeglutstatic.dsw: Deleted 3 files
+ (again?) from CVS, on John's request. Old/obsolete MSVC++ project
+ files. (freeglut13.dsp, freeglutdll.dsp, freeglutstatic.dsw)
+ * src/freeglut_main.c, src/freeglut_structure.c: * Indentation issues. *
+ Pulled some common code into a nicely packaged function. * Found some
+ pointer/int issues.
+ * src/freeglut_main.c: Heh.
+
+ Forgot to wrap the fgGetXModifiers() in a #if. Fixed.
+ * src/freeglut_main.c: Extracted some common code to a subroutine, in
+ glutMainLoopEvent(). (The common code was a snippet to compute X
+ keyboard modifiers as a bit-mask of GLUT symbols.)
+ * src/freeglut_main.c: Caught a few more little style issues.
+ * src/freeglut_main.c: Added a "case" for an X event that we turn on but
+ do not use. ({MapNotify}). We already caught {MappingNotify} and
+ {UnmapNotify}.
+ * src/freeglut_main.c: * Fixed a bug in the X11 handling of
+ scrollwheel/mouse. The old code, I believe, checked if *either* a
+ wheel or button callback was set, and then decided which to use---and
+ unconditionally called it. I left the "either" check in, but added
+ additional checks before actually doing the invocation. * Lots of
+ reformatting. Massive. The usual suspects, though, and fairly trivial:
+ Re-indenting to standard size, shuffling some spaces to match the
+ freeglut "standard" of: if( ... ) ...and: func( ... )
+
+2003-10-31 rkrolib
+
+ * src/freeglut_callbacks.c: Cleaned up one macro definition.
+
+ Picked up an over-long line that I missed before.
+ * src/freeglut_callbacks.c: Fit some long lines to 80 columns.
+ * src/freeglut_cursor.c, src/freeglut_display.c,
+ src/freeglut_gamemode.c, src/freeglut_geometry.c: Last of the hard
+ TABs in the src/*.c files.
+ * src/freeglut_init.c, src/freeglut_joystick.c, src/freeglut_main.c,
+ src/freeglut_menu.c, src/freeglut_state.c: En masse removal of most (I
+ think) of the remaining hard TABs in files. There are still a couple
+ of files that need to be hit.
+ * src/freeglut_window.c: Picked up some stray TABs scattered in this
+ file.
+ * src/freeglut_window.c: Noted by XXX comments that the XFlush() calls
+ probably shouldn't be there. Flushing the X protocol stack every
+ little bit both adds clutter to the code and may impede performance.
+
+ It seems that we should be able to get rid of these, though allowing
+ client code to directly call glutMainLoopEvent() does make it a little
+ more complicated.
+
+ Something to ponder.
+ * src/freeglut_window.c: Polished off the say-nothing-new comments and
+ lines-over-80-columns in freeglut_window.c
+
+ There should be no functional changes.
+ * src/freeglut_window.c: Missed a few say-nothing-new comments in
+ fgOpenWindow(). Eeep. Should be better now. (^&
+ * src/freeglut_window.c: Cleansed fgCloseWindow(): * say-nothing-new
+ comments axed. * de-TABbed. * Made the white-space to be consistent.
+ * src/freeglut_window.c: Cleaned up fgOpenWindow(): * Removed TABs. *
+ Made indentation consistent. * Deleted say-nothing-new comments. *
+ Changed an *error*check* from an assert to an if(). (The error-check
+ was on window creation; we don't want to lose that if the user
+ compiles with asserts deactivated. Also, assert()s really tell us more
+ about programming errors, rather than run-time errors, so it is a
+ little misleading to use assert() for error-checks, even if you can
+ depend upon assert()s never being compiled away to null statements.) *
+ Added some XXX comments for things that bear some rumination.
+ * src/freeglut_window.c: Cleanup to fgSetWindow(). The usual suspects: *
+ Removed tabs. * Made indentation consistent. * Killed off
+ say-nothing-new comments.
+ * src/freeglut_window.c: Cleanup to fgSetupixelFormat(). Should be no
+ functional changes.
+
+ Code facelift included:
+
+ * Consistent indentation. * Removal of all TABs (there were a bunch).
+ * Fit to 80 columns.
+ * src/freeglut_window.c: There should be no changes to code
+ functionality, though a fair bit of little changes to the code
+ appearance.
+
+ * Fit the comments at the start of the file to fit 80 columns. * Noted
+ an unusual feature of the ATTRIB() macro. * Added ATTRIB_VAL() macro
+ which is really just two ATTRIB()s. This lets us put things like
+ {ATTRIB (GLX_RED_SIZE); ATTRIB (1);} on one statement: {ATTRIB_VAL
+ (GLX_RED_SIZE, 1);}. I did this to preserve some of the layout of
+ information while also avoiding the nasty semi-visible ";" in the
+ middle of a line of code. And by putting the {braces} in the macro
+ definition, I was able to visually clean code of the form: if
+ (condition) { ATTRIB( X ); ATTRIB( 1 ); } ...rewriting as: if
+ (condition) ATTRIB_VAL( X, 1 ); * Eliminated a bunch of
+ say-nothing-new comments in fgChooseVisual(). * Combined some
+ semi-useful comments into a block comment summarizing a loop.
+
+2003-10-30 rkrolib
+
+ * src/freeglut_structure.c: Finished off most of the issues with
+ freeglut_structure.c, from a stylistic point of view (at least,
+ insofar as: The original file's code was INCON- SISTANT. I did not
+ remove the "!= NULL" stuff, did not address the shortest-branch-first
+ issue for if-else statements, and left some rather ugly "if (x) {...
+ return y} /* else do this */ return NULL;" garbage. This should, I
+ think, be re-written as "if (x) return y; else return NULL;" or even
+ better, "ret = NULL; if (x) ret = y; return ret;"
+
+ In short, the code still has some issues, but I think that it's a bit
+ better.
+
+ (Oh, I also got rid of outstanding TABs.)
+ * src/freeglut_structure.c: Eliminated most of the say-nothing-new
+ comments.
+
+ Fit most of the code to no more than 80 columns.
+
+ Raised some issues about completeness/correctness of trying to
+ decrement the max-window-ID (apparently in order to partially recycle
+ some window IDs to slightly slow the rate of growth of window IDs). (I
+ didn't change what the code does, though.)
+
+ The functionality of the code should be unchanged.
+ * src/freeglut_main.c: Forgot to set {direction} explicitly to +/- 1 for
+ freeglut mouse-wheel API on MS-WINDOWS. Oops.
+
+ Now it should always report +/- 1 on MS-WINDOWS, per the spec.
+ * src/freeglut_main.c: Minor fix to allow for multiple ticks to be
+ received at one time by the WIN32 code. Take abs(direction) as the
+ number of ticks, and count it down.
+
+ <stdlib.h> *should* be included by freeglut_internal.h, I think, so it
+ should be okay; otherwise add a suitable #include.
+ * src/freeglut_main.c: Grrr. My attempt to commit got aborted, and the
+ commit message was lost. Now I've lost track of what I said I'd done.
+ Something like:
+
+ * Fixed some issues with multiple wheels. * Noted in comments some
+ issues about other-than-3-real-buttons. * Fixed formatting to fit 80
+ columns. * Removed some BCPL/C++ style comments (//) that are not
+ legal, and which, if memory servers, are not even strictly legal when
+ disabled by preprocessor directives. E.g.,
+
+ #if 0 not-syntactically-valid-C #endif
+
+ ...is not legal. Though most cpp's will discard the bracketed material
+ completely before the main C compiler pass has a chance to analyze the
+ syntax. (MSVC++ and GCC both don't seem to mind the BCPL style
+ comments in plain C, but let's keep the sources clean, eh?) * Fixed a
+ problem that would have caused freeglut to report doubled wheel events
+ under XFree86.
+
+ Not tested other than compiling. Personally, I think that the
+ interface is inherently broken at this point unless you are willing to
+ get user- configuration. (Which would then solve the complaint that
+ Steve had about computing the tick-size on behalf of applications.)
+ I.e., there is NO WAY to know if we have the right buttons to start
+ wheels at, or if there are any buttons after the first wheel(s), etc.
+ We just have to guess---and if we are wrong, we can get varying
+ degrees of brokeness.
+
+2003-10-29 Christopher John Purnell
+
+ * src/freeglut_window.c: There is a problem with the way I did
+ glutFullscreen() in my last commit. So I've copied the way the game
+ mode does it. It's not ideal but it works. The glutGet() for the
+ window border sizes will also have to be fixed at some point.
+ * src/freeglut_window.c: Rewrote glutFullscreen(). It now correctly
+ places the window in X11. It now uses system dependent code for more
+ efficient use of windowing system calls.
+
+2003-10-29 rkrolib
+
+ * src/freeglut_joystick.c: Should be no real changes to the code
+ function.
+
+ I missed a few lines that went past 80 columns. (^&
+
+ Also made formatting more consistent.
+
+ Added a couple of XXX comments re. FreeBSD vs. general BSD #ifdef's.
+ * src/freeglut_joystick.c: Should be entirely superficial changes to
+ code style:
+
+ * Fit lines to 80 columns. (It does get tiresome seeing long lines
+ forced to break by the right-hand border of windows...(^&) *
+ Eliminated say-nothing-new comments. * Made formatting more consistent
+ in spots. * Eliminated some hard TAB characters.
+ * src/freeglut_joystick.c: Added Thierry's change to include
+ sys/param.h. This lets us pick out version numbers for OS releases
+ corresponding to system headers.
+
+ I modified it to also work with NetBSD; I cannot confirm if it is safe
+ with any other systems, so it remains protected by a #if.
+ * src/freeglut_state.c: Deleted some say-nothing-new comments.
+
+ Added some XXX's where comments seemed to require future attention.
+
+ Added some new comments with XXX's where future attention seems
+ profitable.
+ * src/freeglut_state.c: Deleted a bunch of say-nothing-new comments.
+ Someday, there shall be an end to them.
+ * src/freeglut_state.c: Previous changes were made without the freeglut
+ major mode in EMACS. Re-tweaked some lines (mostly got rid of some
+ TABs, but also resulted in some changed indentation).
+
+ Reformatted a big comment to fit to 80 columns.
+
+ Removed bogus references to "Linux". (UNIX, and/or X11 were relavent,
+ and "UNIX/X11" was substituted for "Linux" in those places. This
+ includes UNIX-alike systems.)
+ * src/freeglut_state.c: Rewrote the TODO BEFORE THE STABLE RELEASE
+ comment to fit to 80 columns.
+
+ Cleanup of fghGetConfig(). (One return statement, simpler code.)
+
+ Made glutSetOption() have a more consistent style---and also got its
+ lines to stay under 80 columns.
+ * src/freeglut_misc.c: Got the last of the say-nothing-new comments in
+ freeglut_misc.c.
+
+ (I would have picked them up before, but wanted the bug-fix and
+ conversion-to-error-message changes to go in before I did more
+ superficial stuff.)
+ * src/freeglut_cursor.c, src/freeglut_main.c, src/freeglut_misc.c: *
+ Fixed a bug that I introduced in fgWarning()/fgError(): I thought that
+ ((a) || (b)) was defined to have value as: (a) if (a) != 0 (b) if (a)
+ == 0
+
+ ...instead, it has value 0/1. This was causing a bug. It's probably
+ just as well, since what I was trying to do definitely fell into the
+ category of "clever code" rather than "clear code".
+
+ Sorry.
+
+ * Made glutSetKeyRepeat() call fgError() if you go out of range. (The
+ old code silently did nothing---not even a warning.)
+
+ If it is really desirable to keep running, we should probably at least
+ generate an fgWarning().
+
+ * Deleted some say-nothing-new comments.
+
+ * XXX added: Is glutSetKeyRepeat() deprecated?
+
+2003-10-28 rkrolib
+
+ * include/GL/freeglut_ext.h, src/freeglut_callbacks.c,
+ src/freeglut_ext.c, src/freeglut_internal.h, src/freeglut_main.c:
+ Commit, mostly of work from John:
+
+ * Removed some say-nothing-useful comments. * Added some tentative
+ mouse-wheel support. * Fairly massive reformatting of code.
+
+ I made some secondary changes to his changes:
+
+ * One compilation error was fixed (missing close-paren + semicolon). *
+ Deleted a few ore say-nothing-useful comments. * Some of John's code
+ was strangely formatted to the point that it seemed completely out of
+ place, so I took the liberty of reformatting it. Since I used GNU
+ EMACS's <tab> key (which re-indents rather than inserts TAB
+ characters), I had to propagate some indentation changes a little
+ further than the bare necessity to match up with John's changes. (John
+ seems to shoot for 2-space indents, while EMACS (and I, I confess)
+ strongly prefer 4-space indents. The code that I was re-indenting had
+ been put to 8-space indents, however.)
+
+ I have *not* tested the code beyond compiling. I assume that John did
+ (and that the compilation error was a result a minor change just
+ before asking me to commit).
+ * src/freeglut_cursor.c: Re-indentation style changes from John.
+
+ There should be no alterations to how the code performs.
+
+ (I modified how the X11 section of the set-cursor code is indented to
+ slightly better match (IMHO) the rest of his changes.)
+
+2003-10-27 rkrolib
+
+ * src/freeglut_menu.c: Converted a few "x != NULL" tests to "x" for
+ clarity.
+
+ I think that I've touched enough lines of source for one morning.
+ * src/freeglut_menu.c: Cleaned up a little redundancy in a comment on
+ the {menu_pen_*} variables.
+ * src/freeglut_menu.c: Removed about 90 lines of say-nothing-new
+ comments.
+
+ The code should be functionally unaltered by these changes.
+ * src/freeglut_menu.c: Propogated a pointer-check from menu-attach to
+ menu-detach. (Apparently, in some cases, the Menu member variable can
+ be NULL.)
+
+ Corrected the menu-attach code to make sure that both Window and Menu
+ pointers are non-NULL (rather than "at least one").
+
+ Rewrote button-checks to more simply and more clearly assert that the
+ "menu button" is a valid button for menu actions: Instead of
+ laboriously comparing against the three valid buttons (0, 1, 2 or
+ GLUT_BUTTON_*), we do a simpler range-check and the upper bound is
+ {FREEGLUT_MAX_MENUS}, allowing us to change the number of menuable
+ buttons fairly easily in the future.
+
+ Also deleted a few say-nothing-new comments.
+ * src/freeglut_menu.c: Cosmetic changes (mostly deleted a few more
+ say-nothing-new comments). The functionality of the code should be
+ unchanged.
+ * src/freeglut_menu.c: Changed an "#elif TARGET_HOST_UNIX_X11" to
+ "#else", since this simply governed menu aesthetics. I think that it's
+ better to have a default that works than to break completely, should
+ freeglut ever be ported to a new (non-WIN32, non-UNIX/X11) target.
+ * src/freeglut_menu.c: Minor modifications to the menus:
+
+ * Updated an old "TODO BEFORE STABLE" comment.
+
+ * Expanded a comment re. some #define macros.
+
+ * Made colors and font choice system dependent. The UNIX freeglut
+ menus look more like UNIX GLUT menus, now. (This is PURELY a cosmetic
+ change. But it achieves better compatibility visually.)
+ * src/freeglut_main.c: Cleaned up glutMainLoop() a bit:
+
+ * Deleted numerous say-nothing-new comments. * Reformatted a
+ say-something-useful comment to fit on an 80-column display.
+ * src/freeglut_main.c: Partially (re-?)unified some of the
+ glutMainLoopEvent() code. The only code that really needs to be
+ system-specific is the window event handling, which in MS-WINDOWS is
+ tucked into a separate function. In UNIX/X11, it's all spilled out
+ into glutMainLoopEvent() for some reason.
+
+ If the X11 code could be tucked into another function,
+ glutMainLoopEvent() could be platform-independent.
+
+2003-10-26 rkrolib
+
+ * src/freeglut_main.c: Moved the idle callback out of
+ glutMainLoopEvent() and into glutMainLoop(), per discussion on the
+ list. The code looks okay, to me, though I remain less than wholly
+ convinced that treating idles as special cases is the best way to go.
+ Still, a case can be made for taking "non-event" idle callbacks out of
+ the "event loop". From an organizational perspective, I think that
+ it's an improvement, and it fixes a bug for at least one program.
+ * src/freeglut_menu.c: Added John's text-positioning modification.
+
+ The lines that he was altering were very oddly-split, so while I was
+ at it, I repaired the line-break damage.
+ * src/freeglut_joystick.c: Committed change from Nigel to fix the
+ joystick bug. (The joystick code was not setting the GLUT window prior
+ to calling callbacks.)
+
+ Please verify. If so, this closes out, I think, the latter half of
+ that bug report, so anyone with the means to modify/close bug reports
+ should do so upon verification of the fix.
+ * src/freeglut_main.c: Superficial cleanup of the code. Mostly taking
+ lines such as:
+
+ ...
+
+ /* * <Enslish recapituation of the single following C statement> */
+ <single C statement>
+
+ ...and rewrote as:
+
+ ... <single C statement>
+
+ freeglut_main.c still has a lot of that in it, but it looks a bit
+ better, now.
+ * src/freeglut_init.c: Added some error-checking (particularly w.r.t.
+ strdup()).
+
+ Deleted numerous 4-line "padding" sequences of C-as-English trans-
+ literation comments.
+
+ Re-indented some (but not all) code that is using 2-space indentation.
+ (Most of the freeglut code seems to be using 4-space indentation.)
+
+ I did not touch the "INIT DISPLAY STRING PARSING" code, since it is
+ filled with a ton of over-long lines and also appears to be in more
+ flux than the rest of the code. (Well, I added one error-check to a
+ strdup().)
+ * src/freeglut_font.c: Removed two more bogus "carriage return"
+ references where the comments were in fact talking about a line feed
+ (a.k.a. newline, LF, ^J, \n, ...).
+ * src/freeglut_init.c, src/freeglut_internal.h, src/freeglut_main.c:
+ Fixed the buglet about failing to report the program's name on error-
+ messages. Please test. (Modified glutInit(), the state structure, and
+ the warn/err functions.)
+
+2003-10-23 James Jones <puggles@users.sourceforge.net>
+
+ * ChangeLog: Released 2.0.1
+
+2003-10-21 Christopher John Purnell
+
+ * configure.in, include/GL/Makefile.am, include/GL/freeglut.h,
+ include/GL/freeglut_std.h, include/GL/glut.h,
+ progs/demos/Fractals/Makefile.am,
+ progs/demos/Fractals_random/Makefile.am,
+ progs/demos/Lorenz/Makefile.am, progs/demos/One/Makefile.am,
+ src/Makefile.am: Added --disable-replace-glut option to autoconf
+ configure.
+
+2003-10-15 James Jones <puggles@users.sourceforge.net>
+
+ * NEWS: Noted the release of 2.0.0
+ * configure.in: Version bump
+
+2003-10-14 rkrolib
+
+ * src/freeglut_font.c: Swept the freeglut_font.c for comment cleanup: *
+ Got rid of the "rewrite C as English" comments. * Corrected several
+ bogus references to "carriage returns" (in strings). The symbols were
+ newlines or EOLs or LFs (\n). They were *not* carriage returns or CRs
+ (\r). * Clarified the comments on glBitmap() calls.
+
+2003-10-13 rkrolib
+
+ * progs/demos/Fractals/fractals.c,
+ progs/demos/Fractals_random/fractals_random.c: Small bug-fix that's
+ been on my mind:
+
+ Modified the two Fractals* demos so that they only clear (for the
+ random one) or redraw (for the non-random one) if there is need to do
+ so. (E.g., pressing the space bar should not clear and redraw the
+ random fractal since no parameters are altered.)
+ * src/freeglut_cursor.c, src/freeglut_display.c: Removed the obsolete
+ hack (or very ill-conceived dream), fgDisplayCursor().
+ * src/freeglut_display.c: Cleaned up some of the style issues (mostly
+ "fluff" comments) in freeglut_display.c.
+ * src/freeglut_cursor.c: Comment-cleaning sweep.
+
+ Mostly got rid of the say-it-in-English comments that were adding 1
+ line of English and 2 or 3 lines of filler for each of several lines
+ of C code. Updated a couple of other comments, and tweaked some
+ white-space.
+ * src/freeglut_callbacks.c: Cleaned up the comments a bit in the
+ callbacks.c file (mostly removed some of the
+ kill-4-lines-to-translate-one-line-of-C-into-English comments).
+
+2003-10-12 rkrolib
+
+ * src/freeglut_cursor.c: Added all missing GLUT cursor types for X11.
+
+ (Type NONE is not properly supported, yet.)
+
+ Corrected behavior for the several old types: * Wrong glyphs. *
+ Reversed glyphs (left/right confusion!)
+
+ There are some remaining imperfections, but it's a lot closer to GLUT
+ comformity, now.
+
+2003-10-11 rkrolib
+
+ * src/freeglut_callbacks.c: Three tidying-up changes to the code of
+ freeglut_callbacks.c; none of them are Earth-shattering, but as I
+ swept through looking somewhat more systematically for errors, I
+ picked these off. See the diff's for details.
+ * src/freeglut_callbacks.c: Fixed a basic readability/style error in the
+ code. (Two statements per line are almost never a good idea; in this
+ case the combined line was past 80 columns.)
+ * src/freeglut_callbacks.c: Added a safety-check on a memory allocation.
+ (Timers were using dynamic memory allocation but NOT checking the
+ result!)
+ * src/freeglut_menu.c: Committed two lines from John to help fix the
+ menus a bit.
+ * src/freeglut_callbacks.c: Check the glutDisplayFunc() callback for
+ being a NULL pointer. This is illegal and is disallowed in GLUT 3.0+,
+ so we disallow it too in freeglut 2.0.1+
+
+2003-10-09 rkrolib
+
+ * progs/demos/Fractals/fractals.c,
+ progs/demos/Fractals_random/fractals_random.c: Applied John's updated
+ ReadConfigFile() changes to the fractals demos.
+ * progs/demos/Fractals_random/fractals_random.c: Fixed: * glutInit()
+ ordering w.r.t. glutInit*() and {argv} processing. * Aspect ratio. *
+ Removed depth-buffer usage. (Also done for Fractals in previous
+ commit...)
+ * progs/demos/Fractals/fractals.c: A few minor changes: * glutInit*()
+ calls should precede glutInit(), per se, generally. This is so that
+ glutInit()'s configuration (which picks up on user parameters) can
+ override application defaults. * glutInit() should be called before
+ ANY attempt to process {argv, argc}. This is because there may be
+ GLUT/freeglut parameters (such as "-display" on X11). * If the window
+ is tall and skinny, rather than short and squat, we need to handle
+ aspect ratios differently.
+
+ The first is a user-interface bug. The second is a serious bug
+ (especially since the demo assumes that argv[1] contains a filename).
+ The third is a display bug.
+
+2003-10-08 rkrolib
+
+ * src/freeglut_main.c: Changed CreateNotify (in X11 ONLY) to act like a
+ ConfigureNotify event.
+
+ This is done so that subwindows on X11 will get "resize" events when
+ they are created. Old GLUT did this---presumably by design in order to
+ ensure that (a) All windows get notified of their size as soon as the
+ window exists, and (b) probably more importantly, so that windows and
+ sub-windows behave as much alike as possible. I believe that GLUT was
+ right to do this, and I believe that compatibility requires this (I
+ have a sample program that breaks in freeglut but not GLUT without
+ this fix).
+
+ I did not touch the Microsoft side, because I don't know what their OS
+ does---nor if old GLUT was historically system-dependent about this.
+
+2003-10-08 Eric Sandall
+
+ * ChangeLog, src/freeglut_menu.c: freeglut_menu.c:217,519,532: Fix menus
+ to stay in the window (John Fay)
+
+2003-10-08 rkrolib
+
+ * src/freeglut_menu.c: Several updates from John and myself.
+
+ The broad outlines are:
+
+ * Color schemes are now in variables, are closer to old GLUT, and are
+ system dependent (as old GLUT did). * You can change the font to any
+ bitmapped font more easily, which can aid in finding a better
+ approximation. (Old GLUT does not seem to have used a GLUT font for
+ the menus, which causes problems for us.) The menus rescale
+ automatically, including the triangle "arrow" for sub-menus. * Menus
+ have real borders, and the placement of highlighting is much improved.
+ * src/freeglut_main.c: Fixed a bug in the menu callback behavior. Menus
+ were not setting the current window correctly.
+
+2003-10-06 Eric Sandall
+
+ * ChangeLog, src/freeglut_menu.c: freeglut_menu.c:328 Fix submenu
+ triangle (John Fay)
+
+2003-10-04 James Jones <puggles@users.sourceforge.net>
+
+ * ChangeLog, src/freeglut_main.c, src/freeglut_structure.c: Tweaking for
+ menu behavior in Linux regarding mouse whatnot - John Fay
+
+2003-10-01 rkrolib
+
+ * src/freeglut_joystick.c: Applied a patch from "extraeme@netbsd.org" to
+ add joystick support. Untested, but it compiles for me.
+
+ Should also add Joystick support for older FreeBSD systems. Also
+ untested.
+ * src/freeglut_main.c: Added support for more arbitrary number of mouse
+ buttons (though only the first three can work with menus), in X. This
+ closes a compatibility gap with old GLUT, and leaves us the option of
+ supporting scroll-wheels properly.
+
+2003-09-27 Christopher John Purnell
+
+ * progs/demos/Fractals/Makefile.am,
+ progs/demos/Fractals_random/Makefile.am,
+ progs/demos/Lorenz/Makefile.am, progs/demos/One/Makefile.am: Don't
+ install the demos.
+
+2003-09-26 James Jones <puggles@users.sourceforge.net>
+
+ * progs/demos/Makefile.am: Package the demos.dsw file.
+ * progs/demos/demos.dsw: Demos workspace for MSVC users
+
+2003-09-24 rkrolib
+
+ * src/freeglut_main.c: Corrected a bug w.r.t. display and joystick
+ events. When getting ready to sleep, we need to go through ALL windows
+ to check for pending joysticks and to check for pending redisplays. I
+ was just going through all TOP- LEVEL windows. Eeek. This won't do.
+
+2003-09-23 Brian Paul
+
+ * progs/demos/Fractals_random/fractals_random.c: added needClear flag to
+ take care of initial window clear and window resize clears
+
+2003-09-23 rkrolib
+
+ * src/freeglut_init.c: Per Nigel Stewart's comments, converted
+
+ #ifdef TARGET_HOST_...
+
+ to:
+
+ #if TARGET_HOST_...
+
+ in src/freeglut_init.c. These changes should not have any functional
+ impact at this time, but you don't want bad examples lying around to
+ trip people up later.
+ * progs/demos/Fractals_random/fractals_random.c, src/freeglut_main.c,
+ src/freeglut_window.c: Fixed: * GLUT_SINGLE now should behave more or
+ less correctly. Thanks to Brian Paul!
+
+ * Sleeping is now cognizant of outstanding redisplays.
+
+ * Fractals_random has been restored more or less to as-before, save
+ that it uses the more minimal glFlush() rather than glutSwapBuffers().
+ glutSwapBuffers() was only required when freeglut was incorrectly
+ handling promotion to double-buffering.
+
+2003-09-22 rkrolib