fgState.FPSInterval is unsigned int (GLuint), environment variable GLUT_FPS can be...
[freeglut] / ChangeLog
index b1a9479..fc0ffc7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -112,6 +112,556 @@ October 24, 2002:
 
 (43) Fixed the bitmapped Helvetica 12 and Helvetica 18 fonts so they now match the GLUT fonts.
 
+*******************************************************************************************
+* Sent the files to Don Heyse on November 27 for inclusion in CVS.
+*******************************************************************************************
+
+(44) Fixed the other bitmapped fonts so they now match the GLUT fonts.  There are some differences in the placement of the bit patterns within the characters, but the greatest difference is only a pixel or two.
+
+(45) Added DLL capability.  Changed the names of the outputs so that the static library is "freeglut_static.lib" and the names of the DLL file and its interface file are "freeglut.dll" and "freeglut.lib".
+
+(46) Moved the "freeglut_internal.h" file from the public include directory to the private source code directory.
+
+(47) Split the "freeglut.h" file into a "glut.h" file that is compatible with GLUT and a "freeglut_ext.h" file that contains the new extensions.
+
+*******************************************************************************************
+* Changes starting in May 2003
+*******************************************************************************************
+
+(48) Changed "freeglut_main.c" to allow the Windows version to pass the mouse position to the keystroke callbacks
+
+(49) Changed "freeglut_main.c" in the Unix section to move the call to find the event's window to before the "switch" statement.
+
+(50) Changed "freeglut_main.c" in the Unix section to modify the window closure sequence of events slightly.
+
+(51) Changed "freeglut_state.c" so the "glutGet" calls with window position and size don't move the windows down and to the right one pixel.
+
+(52) Implement single-buffered rendering (or its emulation) in Windows.
+
+(53) Implement Eero Pajarre's "GLUT_ICON" code.
+
+(54) Fixes for the window positioning problem.
+
+(55) Fixed a couple of compiler warnings and other bugs. Changed "freeglut_main.c" to remove a compiler warning. Changed "freeglut_structure.c" to set the current window before calling the window closure callback.
+
 
+*******************************************************************************************
+* Changes on 17-19 June 2003
+*******************************************************************************************
+
+(56) Added glutGetProcAddress()
+
+(57) Added GLUT_FPS env var.
+
+(58) Implemented Aleksandar Donev's user data changes:  added user data fields to window and menu structures and implemented functions to get and set them
+
+(59) Added a "MenuDestroy" callback which sets a function that "freeglut" calls when a menu is destroyed.
+
+
+
+*******************************************************************************************
+* Changes on 20 June 2003
+*******************************************************************************************
+
+(60) Added autogen.sh (#30 from todo.txt)
+
+(70) Updated aclocal.m4 with aclocal 1.7.3 (was created with aclocal 1.5)
+
+(71) Changed all references to the 'freeglut-1.3' directory to 'src', copied 'freeglut-1.3' to 'src' and added all files to the repository (TODO #34).
+
+
+*******************************************************************************************
+* Changes on 24 June 2003
+*******************************************************************************************
 
+(80) Fixed autogen.sh and removed aclocal.m4
 
+(81) Added 'freeglut.kdevelop' (Gideon [Kdevelop 3.0]) project file
+
+
+*******************************************************************************************
+* Changes on 24 June 2003
+*******************************************************************************************
+
+(82) Added 'freeglut_ext.c' to the project files 'freeglut.dsp' and 'freeglut_static.dsp' (New list #10)
+
+
+*******************************************************************************************
+* Changes on 27 June 2003
+*******************************************************************************************
+
+(83) Now installs freeglut_ext.h and glut.h to /usr/include/GL (was missing before)
+
+
+*******************************************************************************************
+* Changes on 01 July 2003
+*******************************************************************************************
+
+(84) Fixed the 'ptr + len' problem in freeglut_misc.c:90
+
+
+*******************************************************************************************
+* Changes on 02 July 2003
+*******************************************************************************************
+
+(85) Removed genfonts/genstrokes code, updated configure.in and Makefile.in
+
+(86) Moved tests/one.c into progs/demos/One/one.c, updated configure.in and Makefile.in
+
+(87) Removed tests directory
+
+
+*******************************************************************************************
+* Changes on 03 July 2003
+*******************************************************************************************
+
+(88) Removed unused char *ptr from freeglut_misc.c
+
+*******************************************************************************************
+* Changes on 17 July 2003
+*******************************************************************************************
+
+(89) Changed the overlay (freeglut_state.c:662) to return FALSE, as it's not implemented yet.
+
+(90) Applied John F. Fay's fixes to freeglut.dsp and freeglut_static.dsp
+
+
+*******************************************************************************************
+* Changes on 21 July 2003
+*******************************************************************************************
+
+(91) src/Makefile.am:38  Changed versioning to 11:0:8 thanks to Bernhard Kaindl
+
+
+*******************************************************************************************
+* Changes on 22 July 2003
+*******************************************************************************************
+
+(92) freeglut.lsm:3  Removed 'beta' label for next release, thanks to Bernhard Kaindl.
+
+
+*******************************************************************************************
+* Changes on 23 July 2003
+*******************************************************************************************
+
+(93) doc/Makefile.am:4  Removed trailing backslash and added an empty last line
+
+(94) src/freeglut_window.c  Windowing fixes from John F.
+
+
+*******************************************************************************************
+* Changes on 23 July 2003
+*******************************************************************************************
+
+(95) src/freeglut_initial.c:91  Added check for SOLARIS OS (Dave Reed)
+
+(96) src/freeglut_window.c:551  Removed extra carriage return for Windows users (John F. Fay)
+
+
+*******************************************************************************************
+* Changes on 05 August 2003
+*******************************************************************************************
+
+(97) src/freeglut_main.c:816 and :1571, set the current window (John F. Fay)
+
+(98) src/Makefile.am:34 Added mwmborder.c
+
+(99) src/freeglut_window.c:67  Removed #included "mwmborder.c"
+
+*******************************************************************************************
+* Changes on 10 August 2003
+*******************************************************************************************
+
+(100) GameMode fixes: src/freeglut_gamemode.c src/freeglut_internal.h src/freeglut_window.c
+
+  src/freeglut_gamemode.c:
+     fghRememberState():     remember original XFree86 ViewPort
+     fghRememberState():     remember original pointer position
+     fghRestoreState():      restore  original pointer position
+     fghRestoreState():      restore  original XFree86 ViewPort
+     fghChangeDisplayMode(): fix glutGameModeGet(GLUT_GAME_MODE_POSSIBLE)
+     fghChangeDisplayMode(): remove superflous attempt to change ViewPort
+     glutEnterGameMode():    move special XMoveWindow() from generic code here
+     glutEnterGameMode():    call XSync() to avoid races with XPointer calls
+     glutEnterGameMode():    call to XWarpPointer() to ensure that the pointer is grabbed
+     glutEnterGameMode():    wait until window is viewable to avoid exit on XSetInputFocus
+     glutEnterGameMode():    move decorations away to fix fullscreen w/ max resolution
+
+  src/freeglut_internal.h:
+     struct tagSFG_Display:  add fields for saving viewport and pointer position
+
+  src/freeglut_window.c:
+     fgOpenWindow():         remove obsolete special case for GameModeEnter()
+
+*******************************************************************************************
+* Changes up to September 12, 2003
+*******************************************************************************************
+
+(101) Include files:  Underscores added to the defined constants which prevent multiple inclusions
+
+(102) String functions:  Arguments changed from "char *" to "unsigned char *" for compatibility with GLUT
+
+(103) Added several explicit type casts to allow compilation with "Dev C++" compiler
+
+(104) Quite a bit of debugging of the menus in their menu windows
+
+(105) Removed "glib" dependency from joystick code; now it compiles under FreeBSD
+
+(106) Removed the "fgCleanUpGlutsMess" function because it was redundant
+
+
+*******************************************************************************************
+* Changes on September 13, 2003
+*******************************************************************************************
+
+(107) Repaired DOS line endings in the MSVC project and workspace files
+
+(108) Fixed some relative paths in the MSVC demo project files
+
+(109) Fixed all the demo makefiles to ensure they compiled properly; included minor changes to some of the sources.
+
+(110) Fixed compiliation of freeglut_joystick.c on FreeBSD
+
+*******************************************************************************************
+* Changes through September 24, 2003
+*******************************************************************************************
+
+(111) Fixed busy-wait bug in freeglut; now sleeps when there's nothing to do.
+
+(112) GLUT_SINGLE properly supported.
+
+(113) progs/demos/Fractals_random works.
+
+*******************************************************************************************
+* Freeglut 2.0.0 Released on  September 29, 2003!
+*******************************************************************************************
+
+*******************************************************************************************
+* Changes on October 1, 2003
+*******************************************************************************************
+
+(114) Support for more than 3 mouse-buttons (this allows 3+scroll-wheel to
+workin X, for example).
+
+(115) Added 3rd party patch to make joystick code work on NetBSD (untested)
+and on older versions of FreeBSD (also untested)
+
+*******************************************************************************************
+* Changes on October 3, 2003
+*******************************************************************************************
+
+(116) Tweaking for the menu behavior on Linux regarding mice, etc. - John Fay
+
+*******************************************************************************************
+* Changes on October 6, 2003
+*******************************************************************************************
+
+(117) freeglut_menu.c:328 Fix submenu triangle (John Fay)
+
+*******************************************************************************************
+* Changes on October 8, 2003
+*******************************************************************************************
+
+(118) freeglut_menu.c:217,519,532: Fix menus to stay in the window (John Fay)
+
+(119) Fixed menu callbacks to set the current window.
+
+(120) Numerous GLUT-alikeness corrections made to the menus (UNIX_X11
+freeglut menus now look more like old UNIX/X11 GLUT menus).  Placement
+and highlighting of menus is greatly improved as well, and (at least
+at compile-time) it is now easy to change fonts and colors for menus.
+
+(121) Fixed CreateNotify on X11 to act like ConfigureNotify.  This
+helps subwindows in freeglut behave more like top-level windows.  (In
+old GLUT, they behaved essentially the same, so we try to reproduce
+that here.)
+
+*******************************************************************************************
+* Changes on October 9, 2003
+*******************************************************************************************
+
+(122) Minor glutInit*() quibbles in some of the demos.  Also applied a
+change from John so that the affine-transform demos would work even if
+they couldn't find their default set of transforms or the one named on
+the command-line (a simpler one than even the default is built in).
+
+*******************************************************************************************
+* Changes on October 11, 2003
+*******************************************************************************************
+
+(123) Disallow people to pass NULL in for glutDisplayFunc().
+
+(124) More menu fixes from John.
+
+(125) Check the memory allocation of timers.
+
+(126) Some code style/readability issues.
+
+*******************************************************************************************
+* Changes on October 11, 2003
+*******************************************************************************************
+
+(127) Fleshed out all missing cursor types on NetBSD (UNIX_X11) for the
+glutSetCursor() call.  GLUT_CURSOR_NONE still required work.  Fixes
+included: Adding numerous types required by GLUT but previously missing
+in freeglut, reversing the left/right glyphs, and some just-plain-wrong
+glyphs corrected.
+
+*******************************************************************************************
+* Changes on October 13, 2003
+*******************************************************************************************
+
+(128) Removed obsolete hack (or ill-conceived dream) of fgDisplayCursor().
+
+(129) Modified the the fractal demos so that they don't clear/redraw quite
+so often.
+
+(129) Code readability/style issues.
+
+*******************************************************************************************
+* Changes on October 14, 2003
+*******************************************************************************************
+
+(130) More style issues.
+
+*******************************************************************************************
+* Freeglut 2.0.1 Released on 23 October, 2003!
+*******************************************************************************************
+
+*******************************************************************************************
+* Changes on October 26, 2003
+*******************************************************************************************
+
+(131) Made freeglut know the program's name (fetch from main()'s argv[0]).
+
+(132) Moved idle callback out of glutMainLoopEvent().
+
+(133) Committed Nigel's fix to make the joystick set the current window before
+invoking the callback.  (Completes the closeout of an open bug report,
+once verified.)
+
+(134) Added some error-checking of memory allocations.
+
+(135) More style issues.
+
+*******************************************************************************************
+* Changes on October 27, 2003
+*******************************************************************************************
+
+(136) Partially unified the UNIX_X11 and WIN32 branches of glutMainLoopEvent()
+
+(137) Updated comments, other style issues.  Check for some NULL pointers.
+
+*******************************************************************************************
+* Changes on October 28, 2003
+*******************************************************************************************
+
+(138) More style issues.
+
+(139) Mouse-wheel support added for WIN32.  API extension generally
+added to freeglut.
+
+*******************************************************************************************
+* Changes on October 29, 2003
+*******************************************************************************************
+
+(140) Fixed a bug in fgWarning()/fgError().  Added range-check to
+glutSetKeyRepeat().
+
+(141) More style issues.
+
+(142) Removed bogus references to "Linux" in freeglut_state.c.
+The references should have properly been to UNIX and/or X11.  GNU/LINUX
+emulates UNIX, and X11 is the windowing system that runs on most graphics-
+capable UNIX systems (including most GNU/LINUX systems).  freeglut should
+run on any sufficiently UNIX-like system with OpenGL and X11 (or at least
+XFree86's implementation of X11).
+
+(143) #include <sys/param.h> on the BSDs so that we can check the system
+version number at compile-time.
+
+*******************************************************************************************
+* Changes on October 30, 2003
+*******************************************************************************************
+
+(144) Numerous small fixes w.r.t. mouse-wheels on WIN32.
+
+(145) More style issues.
+
+*******************************************************************************************
+* Changes on October 31, 2003
+*******************************************************************************************
+
+(146) More style issues.
+
+(147) Converted an error-check from an assert() to an if().
+
+(148) Removal of the last ASCII TAB character from src/* files.  This
+conversion process ensures that the formatting appears more consistant
+for everyone.  (TABs can vary in their expansion from one system to
+another).
+
+*******************************************************************************************
+* Changes on November 3, 2003
+*******************************************************************************************
+
+(149) X11 mousewheel fixes.
+
+(150) Yet more style issues.
+
+(151) Added a case for {MapNotify} events in X11.
+
+(152) Re-(?)deleted 3 files from CVS, per John's request.  These were
+obsolete: freeglut13.dsp, freeglutdll.dsp, freeglutstatic.dsw
+
+(153) Marked a few pointer/int conversion warnings.  (I think that they
+only manifest for me on my AMD64 system, but they seem fairly harmless
+so I didn't try to fix them.)
+
+(154) Memory-leak fix from John.
+
+*******************************************************************************************
+* Changes on Novembber 4, 2003
+*******************************************************************************************
+
+(155) More style issues.
+
+(156) Removed G_LOG_DOMAIN junk, per mailing list discussion.
+
+(157) Added memory-leak detection support (WIN32) to a couple of the
+demos, and fixed at least one memory leak in the process.  Also
+converted Fractals_random to double-precision to avoid some compiler
+warnings.
+
+(158) Stripped CRs from fractals_random.c.
+
+(159) Fixed two bugs: Execution state was improperly set in the end
+of glutMainLoop(), and {ButtonPress} (an X11 constant) was used where
+the flag-variable {pressed} (in UNIX_X11 branch of glutMainLoop())
+should have been used.
+
+(160) Pointer-check before deallocation in the menu code.
+
+*******************************************************************************************
+* Changes on November 5, 2003
+*******************************************************************************************
+
+Remember, remember,
+the 5th of November.
+Gunpowder, treason and plot!   (Bacon?)
+
+I see no reason
+why gunpowder treason
+should ever be forgot.         (Shakespeare?)
+
+*******************************************************************************************
+* Changes on November 6, 2003
+*******************************************************************************************
+
+(161) Fractals_random demo now includes mouse support---including mouse-
+wheel.
+
+(162) Yet more fixes to the mouse wheel support in WIN32.
+
+(163) Converted freeglut to use an array to store window callbacks,
+rather than a struct.  This lets us loop over the array to fill it with
+NULL pointers in order to clear the callbacks.  (With a struct, we were
+reduced to either a ton of assignments---easy to miss one!---or memset(),
+which technically is not a legal way to fill a region with NULL pointers
+because the bit-pattern of a NULL pointer is not necessarily defined to
+be all-zero bits.)  This change also on the one hand provides macros
+to simplify most proper use of the callbacks (even simpler than with
+the struct form), while also making it irritating enough to bypass the
+macros that (it is hoped) abuse will be harder.  (E.g., the invocation
+macros set the current-window.  At least two bugs in the past occurred
+because callbacks were not setting the current window before invoking the
+client.)  See 
+https://sourceforge.net/mailarchive/message.php?msg_id=6467923 for more
+details.
+
+(164) Yet more style issues.  (You thought I'd forgotten about that?)
+
+*******************************************************************************************
+* Changes on November 7, 2003
+*******************************************************************************************
+
+(165) Mouse-wheel corrections in X11.
+
+(166) Style corrections.
+
+(167) Fixed GLUT_CURSOR_NONE support at long last in NetBSD.  (Should also
+apply to other X11 based systems, but I can only test NetBSD.)  Also
+deallocated some resources that glutSetCursor() was allocating in the
+X server.
+
+(168) Added {ReparentNotify} (event type 21) case to glutMainLoop().
+
+(169) Clear window callbacks during window destruction.
+
+(170) Implement visible/invisible support for WIN32.  (Partial?  No
+callback added at this time.)
+
+*******************************************************************************************
+* Changes on November 8, 2003
+*******************************************************************************************
+
+(171) Altered the way that {random} was chosen in the fractals_random.c
+program, in order to attempt to gain a longer cycle before repeating.
+
+(172) More style issues.
+
+*******************************************************************************************
+* Changes on November 9, 2003
+*******************************************************************************************
+
+(173) Added some error-checking to the glutSetCursor() code on my
+NetBSD (UNIX_X11) system.
+
+*******************************************************************************************
+* Changes on November 10, 2003
+*******************************************************************************************
+
+(174) Reversed the Fractals_random changes; they were bogus since they
+assumed that there were always exactly 4 affine transforms to choose
+from (which is certainly not guaranteed!).  Back to just shifting by
+10 bits and going modulo the number of transforms.
+
+*******************************************************************************************
+* Changes on November 11, 2003
+*******************************************************************************************
+
+(175) Retroactively updated the ChangeLog file for all of the commits by
+myself (rkrolib; a.k.a. Richard Rauch) (at least as visible via on the
+SourceForge "CVS message board"), summarzing changes for the sake of those
+who lack both web-browser and CVS access.  Also fixed a numbering error in
+the log where there were two "(110)" events.  (Plus added (174) from
+November 10th by memory.)
+
+(176) Style cleanup to the "one" demo.  (Removal of CRs, TABs, mostly.)
+
+(177) Changed the "one" demo to do glutInit*() calls before glutInit(),
+proper.  This allows command-line parameters to override built-in
+behavior.
+
+(178) Complete purge of all remaining TABs from freeglut's *.[ch] files.
+Also verified that (as far as I can tell) all CRs are removed from all
+files where they do not belong.
+       
+*******************************************************************************************
+* Freeglut 2.2.0 RC 1 Released on  December 10, 2003!
+*******************************************************************************************
+
+(179) CallbackMaker.dsp, demos.dsw, shapes.dsp all updated and are
+packaged with distributions
+
+(180) Fix for the window sizes on Win32 (Nigel Stewart)
+
+(181) Disable/enable lighting in the "one.c" demo (John Fay)
+
+*******************************************************************************************
+* Freeglut 2.2.0 RC 2 Released on  December 11, 2003!
+*******************************************************************************************
+
+*******************************************************************************************
+* Freeglut 2.2.0 Released on  December 12, 2003!
+*******************************************************************************************