implemented SUPER key/modifier support on windows
[freeglut] / ChangeLog
index 0e23a81..b181854 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,39 @@
+2012-01-09  John F. Fay <johnffay@cybertron.com>
+       * Released freeglut 2.8.0 a few days ago and am restarting the ChangeLog
+       * Added 'cmake' support
+       * Moved source files from 'src' directory to 'src/Common' directory with
+       an eye to moving platform-specific code to separate files in separate
+       directories
+2009-08-10  Sven Panne  <sven.panne@aedion.de>
+
+       * include/GL/freeglut_ext.h,include/GL/freeglut_std.h,src/freeglut_ext.c,
+       src/freeglut_init.c,src/freeglut_internal.h,src/freeglut_state.c,
+       src/freeglut_window.c,src/freeglutdll.def: Added support for sRGB
+       framebuffers via the GLX_ARB_framebuffer_sRGB / WGL_ARB_framebuffer_sRGB
+       extensions. Added support for context profiles via the new parts of the
+       GLX_ARB_create_context / WGL_ARB_create_context extensions.
+
+2009-06-11  Paul Blew  <paul.blew@northgatearinso.com>
+
+       * replaced broken IDE based OpenWatcom build with a makefile based one
+
+2009-06-11  Sven Panne  <sven.panne@aedion.de>
+
+       * include/GL/freeglut_std.h: Disable the ATEXIT_HACK for Watcom, their
+       "exit" function has a different calling convention, leading to
+       compilation errors.
+
+2009-05-24  Sven Panne  <sven.panne@aedion.de>
+
+       * freeglut_static_vs2008.vcproj,freeglut_vs2008.vcproj,
+         freeglut_vs2008.sln,freeglut_vs2008_static.sln: Move all files related
+         to Visual Studio 2008 into 2 directories, one for the normal DLL
+         build, and one for the static build. We should do this for other IDEs,
+         too.
+
 2009-05-22  Sven Panne  <sven.panne@aedion.de>
 2009-05-22  Sven Panne  <sven.panne@aedion.de>
+
        * include/GL/freeglut_std.h: Avoid warnings when the ATEXIT_HACK is used
          with GCC, making the hack even uglier.
 
        * include/GL/freeglut_std.h: Avoid warnings when the ATEXIT_HACK is used
          with GCC, making the hack even uglier.
 
 2005-06-30  Sven Panne <sven.panne@aedion.de>
 
        * src/freeglut_main.c: Ooops, forgot to set the current window in the
 2005-06-30  Sven Panne <sven.panne@aedion.de>
 
        * src/freeglut_main.c: Ooops, forgot to set the current window in the
-         last commit. I'll have to test better before comitting... :-]
+         last commit. I'll have to test better before committing... :-]
        * ChangeLog, src/freeglut_main.c: When a window is iconified, only an
          UnmapNotify is sent, not a VisibilityNotify, so we have to handle the
          window status callback in the former case, too. This fixes bug #763442
        * ChangeLog, src/freeglut_main.c: When a window is iconified, only an
          UnmapNotify is sent, not a VisibilityNotify, so we have to handle the
          window status callback in the former case, too. This fixes bug #763442
 2005-06-02  James Jones <puggles@users.sourceforge.net>
 
        * ChangeLog, configure.ac, src/freeglut_internal.h: 2.4.0 Release
 2005-06-02  James Jones <puggles@users.sourceforge.net>
 
        * ChangeLog, configure.ac, src/freeglut_internal.h: 2.4.0 Release
-         Candiate 5
+         Candidate 5
 
 2005-05-26  John F. Fay <john.fay.ctr@eglin.af.mil>
 
 
 2005-05-26  John F. Fay <john.fay.ctr@eglin.af.mil>
 
        * src/freeglut_gamemode.c: Fixed SF bug #1204256: Off-by-one error in
          X11 mode switching. The code which changes the X11 video mode has an
          off-by-one error, resulting in a wrong mode or segfault. I've
        * src/freeglut_gamemode.c: Fixed SF bug #1204256: Off-by-one error in
          X11 mode switching. The code which changes the X11 video mode has an
          off-by-one error, resulting in a wrong mode or segfault. I've
-         refactored the code slighty to make it hopefully clearer what's going
+         refactored the code slightly to make it hopefully clearer what's going
          on and corrected some #ifdefs on the way. Now at least the "One" demo
          works for me.
        * src/freeglut_window.c: Fixed SF bug #1204261: Mini space leak when
          on and corrected some #ifdefs on the way. Now at least the "One" demo
          works for me.
        * src/freeglut_window.c: Fixed SF bug #1204261: Mini space leak when
        * src/freeglut_joystick.c: Removing an unused function
        * src/freeglut_init.c: Making the \"key repeat\" initialization
          consistent with the rest of its usage; also making the
        * src/freeglut_joystick.c: Removing an unused function
        * src/freeglut_init.c: Making the \"key repeat\" initialization
          consistent with the rest of its usage; also making the
-         \"initDisplayString\" ever-so-slightly mroe general
+         \"initDisplayString\" ever-so-slightly more general
        * ChangeLog, TODO, src/freeglut_window.c: Updating the ChangeLog and
          TODO files in preparation for the upcoming release
 
        * ChangeLog, TODO, src/freeglut_window.c: Updating the ChangeLog and
          TODO files in preparation for the upcoming release
 
        * 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
        * 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 inappopriately.
+         had with redisplay events being called inappropriately.
 
 2004-02-19  rkrolib
 
 
 2004-02-19  rkrolib
 
          functions are modified to respect offscreen status.
          
          (Excepting reshaping windows, there is not much useful interpretation
          functions are modified to respect offscreen status.
          
          (Excepting reshaping windows, there is not much useful interpretation
-         for managment of offscreen areas. Reshaping is possibly more work than
+         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
          it's worth to support, and GLUT specs allow us to ignore the request.)
          
          * Cleanup for "offscreen" windows is a little different than for
 
 2004-01-16  rkrolib
 
 
 2004-01-16  rkrolib
 
-       * src/freeglut_main.c: Ammended a comment on fgCheckJoystickCallback().
+       * 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:
          
        * src/freeglut_main.c: Minor style normalizations to minimize the diffs
          between *now* and from before John's changes. No functional changes:
          
        * src/freeglut_main.c, src/freeglut_menu.c, src/freeglut_structure.c:
          Split a few overlong lines.
          
        * 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 consistant with
+         Adjusted some spacing in a few spots to be more consistent with
          freeglut style. Including one unindented if() body.
          
          Eliminated a dead variable.
          freeglut style. Including one unindented if() body.
          
          Eliminated a dead variable.
          (which during general display callback handling would result in
          effectively a glutReshapeWindow()).
          
          (which during general display callback handling would result in
          effectively a glutReshapeWindow()).
          
-         The code is now system-dependant. It should be abstracted to a
+         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
          function, but is presently copied in two places. Sorry.
          
          Also, inverted the order of the associated if()/else check (in both
          file.
          
          NOTE: The prior version of the *.dsw file does not in fact have CRs. I
          file.
          
          NOTE: The prior version of the *.dsw file does not in fact have CRs. I
-         thought that it did. For consistancy, I am not putting them in in this
+         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...)
          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...)
        * 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
        * 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 arrangments of the form (CONST == a) rather than (a ==
+         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
          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 dependance. After a period (perhaps a thousand or so?), it
+         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
          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
          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
          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 dependance on one another (if I can get away
+         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).
          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).
          
          * Don't write a == CONST. Instead, write CONST == a. Or, more
          generally (in C like languages): Avoid putting an lvalue on the
          
          * 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 consistancy, I try to avoid
+         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.)
          
          lvalues on the left- hand side of any comparison---but == is the most
          notorious.)
          
        * src/freeglut_main.c: Missed a block where one level was 2-space
          indented.
          
        * src/freeglut_main.c: Missed a block where one level was 2-space
          indented.
          
-         Nit-picked a few other lines for consistancy.
+         Nit-picked a few other lines for consistency.
 
 2003-11-03  rkrolib
 
 
 2003-11-03  rkrolib
 
        * 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
        * 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 consistant.
+         comments axed. * de-TABbed. * Made the white-space to be consistent.
        * src/freeglut_window.c: Cleaned up fgOpenWindow(): * Removed TABs. *
        * src/freeglut_window.c: Cleaned up fgOpenWindow(): * Removed TABs. *
-         Made indentation consistant. * Deleted say-nothing-new comments. *
+         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
          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
          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: *
          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 consistant. * Killed off
+         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:
          
          say-nothing-new comments.
        * src/freeglut_window.c: Cleanup to fgSetupixelFormat(). Should be no
          functional changes.
          
          Code facelift included:
          
-         * Consistant indentation. * Removal of all TABs (there were a bunch).
+         * 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
          * 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
          In short, the code still has some issues, but I think that it's a bit
          better.
          
          In short, the code still has some issues, but I think that it's a bit
          better.
          
-         (Oh, I also got rid of oustanding TABs.)
+         (Oh, I also got rid of outstanding TABs.)
        * src/freeglut_structure.c: Eliminated most of the say-nothing-new
          comments.
          
        * src/freeglut_structure.c: Eliminated most of the say-nothing-new
          comments.
          
          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
          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 dependant code for more
+         places the window in X11. It now uses system dependent code for more
          efficient use of windowing system calls.
 
 2003-10-29  rkrolib
          efficient use of windowing system calls.
 
 2003-10-29  rkrolib
          
          I missed a few lines that went past 80 columns. (^&
          
          
          I missed a few lines that went past 80 columns. (^&
          
-         Also made formatting more consistant.
+         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
          
          Added a couple of XXX comments re. FreeBSD vs. general BSD #ifdef's.
        * src/freeglut_joystick.c: Should be entirely superficial changes to
          
          * Fit lines to 80 columns. (It does get tiresome seeing long lines
          forced to break by the right-hand border of windows...(^&) *
          
          * 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 consistant
+         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
          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
          
          Cleanup of fghGetConfig(). (One return statement, simpler code.)
          
          
          Cleanup of fghGetConfig(). (One return statement, simpler code.)
          
-         Made glutSetOption() have a more consistant style---and also got its
+         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.
          lines to stay under 80 columns.
        * src/freeglut_misc.c: Got the last of the say-nothing-new comments in
          freeglut_misc.c.
          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
          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 propogate some indentation changes a little
+         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
          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
          
          * Expanded a comment re. some #define macros.
          
          
          * Expanded a comment re. some #define macros.
          
-         * Made colors and font choice system dependant. The UNIX freeglut
+         * 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:
          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:
          into glutMainLoopEvent() for some reason.
          
          If the X11 code could be tucked into another function,
          into glutMainLoopEvent() for some reason.
          
          If the X11 code could be tucked into another function,
-         glutMainLoopEvent() could be platform-independant.
+         glutMainLoopEvent() could be platform-independent.
 
 2003-10-26  rkrolib
 
 
 2003-10-26  rkrolib
 
          Removed depth-buffer usage. (Also done for Fractals in previous
          commit...)
        * progs/demos/Fractals/fractals.c: A few minor changes: * glutInit*()
          Removed depth-buffer usage. (Also done for Fractals in previous
          commit...)
        * progs/demos/Fractals/fractals.c: A few minor changes: * glutInit*()
-         calls should preceed glutInit(), per se, generally. This is so that
+         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
          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
          this fix).
          
          I did not touch the Microsoft side, because I don't know what their OS
          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-dependant about this.
+         does---nor if old GLUT was historically system-dependent about this.
 
 2003-10-08  Eric Sandall
 
 
 2003-10-08  Eric Sandall
 
          The broad outlines are:
          
          * Color schemes are now in variables, are closer to old GLUT, and are
          The broad outlines are:
          
          * Color schemes are now in variables, are closer to old GLUT, and are
-         system dependant (as old GLUT did). * You can change the font to any
+         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
          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
 
        * configure.in, src/Makefile.am, src/freeglut_glutfont_definitions.c,
          src/freeglut_internal.h: Added autoconf detection for the xf86 vid
 
        * configure.in, src/Makefile.am, src/freeglut_glutfont_definitions.c,
          src/freeglut_internal.h: Added autoconf detection for the xf86 vid
-         mode extentions.
+         mode extensions.
 
 2003-08-01  Eric Sandall
 
 
 2003-08-01  Eric Sandall
 
          freeglut-1.3/freeglut_structure.c, freeglut-1.3/freeglut_window.c,
          genfonts/Makefile.am, genfonts/genfonts.c, genfonts/genstroke.c,
          include/GL/freeglut.h, include/GL/freeglut_internal.h: Removed glib
          freeglut-1.3/freeglut_structure.c, freeglut-1.3/freeglut_window.c,
          genfonts/Makefile.am, genfonts/genfonts.c, genfonts/genstroke.c,
          include/GL/freeglut.h, include/GL/freeglut_internal.h: Removed glib
-         dependancy
+         dependency
        * configure.in, freeglut-1.3/Makefile.am, genfonts/Makefile.am: The
          build system now looks for X.
 
        * configure.in, freeglut-1.3/Makefile.am, genfonts/Makefile.am: The
          build system now looks for X.