Adding a Frequently Asked Questions file
[freeglut] / ChangeLog
index ad408ea..97db371 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -905,3 +905,312 @@ a bit to do that.
 
 (235) Fixed part of bug #926883 (Video mode matching code, memory leaks,
 fullscreen), i.e. issue warnings when XF86VidModeFOO fails.
+
+(236) 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.
+
+**************************************************************************
+* Changes between January 3 and April 15, 2005.
+**************************************************************************
+(237) Moved the "#include "config.h"" statement to the header file
+
+(238) Changed the "assert" checks to more dignified statements that print
+      useful error messages before exiting.  Also added initialization
+      checking to all GLUT interface functions.
+
+(239) Changed some menu code around to remove duplicate code.
+
+(240) Implemented the ability to attach a menu to multiple windows.
+
+(241) Implemented the "GLUT_AUXn" color buffers for X11 and Windows
+
+(242) Improved the cursor handling marginally; also removed some duplicate
+      cursor code
+
+**************************************************************************
+* Changes on April 15, 2005.
+**************************************************************************
+(243) Changed some comments in "freeglut_internal.h" as a test for the new
+      pCVSc project.
+
+(244) Changed the names of the "fgStructure.Window" and ".Menu" variables
+      to ".CurrentWindow" and ".CurrentMenu" to make maintenance easier.
+
+(245) Tried implementing Yuri D'Elia's game mode changes.
+
+**************************************************************************
+* Changes in late April 2005
+**************************************************************************
+(246) Added French version of README (called LISEZ-MOI") and a Windows-specific
+      version of README describing how to operate under MSVC
+
+(247) Changed definitions of "FETCH_WCB" and "INVOKE_WCB" to allow compilation
+      with GCC 4.0
+
+(248) Changed the Makefile path to the "include" directory to allow for
+      off-directory compilation
+
+(249) Added some initializations and changed a hard-coded number of mouse
+      buttons to a defined constant
+
+(250) Added code to the Windows timing to allow for millisecond granularity
+      in the execution time
+
+(251) Fixed a reported bug in the fullscreen mode
+
+(252) Added window exit event handling to the Windows code; also put in a note
+      about adding window entry event handling
+
+**************************************************************************
+* Changes in early May 2005 -- in the run-up to 2.4.0
+**************************************************************************
+(253) Added handling for negative position specifications for subwindows
+
+(254) Made the display string handling in "freeglut_init.c" ever so slightly
+      more general
+
+(255) Changed the key repeat flag initialization from "GL_TRUE" to
+      "GLUT_KEY_REPEAT_ON" to make it consistent with its use elsewhere.
+
+(256) Removed the unused joystick function "fghJoystickParseElement"
+
+(257) Added a comment to "glutCreateWindow" about why "freeglut" does not
+      match GLUT when "glutInit" is not called.
+
+(258) Removed an unused "Pixmap" variable
+
+(259) Changed the "shapes" demo to the OpenGLUT "shapes" demo, which is much
+      niftier.
+
+(260) Necessary compilation fixes for newer GCCs (e.g. 3.3.5, 4.0).
+      Side effect: The shapes demo has a new 'i' key now.
+
+(261) Fixed a cuboctahedron vertex, implemented wire mode for that shape.
+
+**************************************************************************
+* 8 May 2005 -- 2.4.0 Release Candidate 1 Released
+**************************************************************************
+(262) Fixed the "vfprintf" for Windows so that error messages get printed
+      out again
+
+(263) Implemented Takeshi Nishimura's menu fixes.  Menus should work now.
+
+**************************************************************************
+* 15 May 2005 -- 2.4.0 Release Candidate 2 Released
+**************************************************************************
+
+(264) More game mode fixes
+
+**************************************************************************
+* 19 May 2005 -- 2.4.0 Release Candidate 3 Released
+**************************************************************************
+
+(265) Lowering minimum autoconf version required.
+
+(266) Guarantee consistency of names/addresses in glutGetProcAddress by
+using a macro. In addition, this avoids any non-constant initializer
+issues which might be raised when using WinDoze GCCs. The additional code
+overhead is negligible, at least for x86 (a few instructions per name).
+
+(267) When switching to game mode under X11, no ConfigureNotify event
+will happen and consequently no reshape callback will ever be called via
+the normal mechanism. To fix this, note that the game mode window needs
+to be resized and handle this before redraw.
+
+(268) The original glutEnterGameMode() returns the window id of the game
+mode window, not TRUE/FALSE, we should better follow that. Note that most
+man pages claim that this function returns void, but this is definitely
+wrong.
+
+(269) Dan Torop's patch to fix joystick polling times (resolves bug 1206856)
+
+**************************************************************************
+* 25 May 2005 -- 2.4.0 Release Candidate 4 Released
+**************************************************************************
+
+(270) Takeshi Nishimura's changes to make the Windows mouse wheel/button mapping match that of X11; also fixing a typo in the associated mouse callback argument list.
+
+**************************************************************************
+* 2 Jun 2005 -- 2.4.0 Release Candidate 5 Released
+**************************************************************************
+
+**************************************************************************
+* 9 Jun 2005 -- 2.4.0 Released
+**************************************************************************
+
+**************************************************************************
+* Changes in late June 2005
+**************************************************************************
+
+(271) Added an RPM spec file based on the one shipped with SuSE 9.3.
+
+(272) Implemented Joe Krahn's "Input Devices" code--at the moment, a dial
+box.
+
+(273) Fixed a bug in the Sierpinski sponge code that caused the application
+to crash if it called the code with a negative number of levels
+
+(274) Added separate static and DLL versions of all the demonstration
+programs under Windows.
+
+(275) Added --enable-debug configure flag. Currently it only turns on X11
+event tracing, but in the future we could add more.
+
+(276) Cleaned up CreateNotify/ConfigureNotify handling.
+
+(277) 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 (Call the visibility callback when
+minimizing a window).
+
+**************************************************************************
+* Changes on July 1, 2005.
+**************************************************************************
+
+(278) Removed redundant files from EXTRA_DIST.
+
+(279) MinGW is lacking a prototype for ChangeDisplaySettingsEx, so
+supply one in this case. Note that this should better be handled via
+autoconf than via cpp.
+
+(280) Silenced a signed/unsigned mismatched via a cast.
+
+(281) Some steps toward compilation under MinGW. Note that there are still
+linking troubles for the examples.
+
+(282) Remove wrong "execute" bits when creating a distribution. This
+fixes bug #961938 (Executable bit set on non exe files).
+
+(283) Partial fixes for bug #1218900 (freeglut-2.4.0 on FreeBSD).
+
+(284) Handle modifiers in MotionNotify events, too. This fixes bug
+#1227920 (glutGetModifiers not set/allowed in mouse callbacks). In
+addition, some related cleanup has been done.
+
+(285) X11 only: Free XVisualInfo structures when they are not needed
+anymore, fixing a space leak. Not perfect for menus yet...
+
+(286) X11 only: Destroy the global menu rendering context when
+deinitializing. The visual/context handling for menus is still rather
+obscure, though...
+
+(287) Removed redundant code.
+
+(288) We only have pending redisplay callbacks when the window wants to be
+redisplayed *and* it is visible. Otherwise we won't redraw, anyway, and
+immediately discover that there's still something to do, etc. etc., leading
+to 100% CPU load.
+
+(289) Made a few global arrays "static", avoiding namespace pollution. The
+only externally visible symbols should either be from the GLUT API
+("glutXXX") or internal freeglut entities ("fgYYY"). Reformatted things a
+bit on the way.
+
+(290) Made all the "glutJoystickXXX" functions part of the freeglut
+extensions.
+
+(291) Solaris doesn't have cfmakeraw, but it is only a convenience function
+for some bit-fiddling, anyway.
+
+(292) Avoid gcc warnings for some joystick code (e.g. on Solaris).
+
+(293) Improve autoconf magic: To detect headers like GL/gl.h, it might be
+necessary to temporarily use the X11 flags found by AC_PATH_XTRA.
+
+(294) Fixed the GLUT_CURSOR_INHERIT logic once again...
+
+(295) Synched the DLL definitions with reality.
+
+**************************************************************************
+* Changes on August 31, 2005.
+**************************************************************************
+
+(296) Added support for Open Watcom
+
+**************************************************************************
+* Changes on September 4, 2005.
+**************************************************************************
+
+(297) Silenced autogen.sh. *nix commands are silent by default.
+
+(298) Use -Wall for automake to catch some buglets, deprecated
+stuff, etc.
+
+(299) Use target-specific *_CPPFLAGS, not the deprecated INCLUDES.
+
+**************************************************************************
+* Changes on October 6, 2005.
+**************************************************************************
+
+(300) Implemented Stereo in Windows.
+
+(301) Allowed compilation of Windows version by removing DLL decorations
+from deprecated joystick interface extensions.
+
+**************************************************************************
+* Changes on October 12, 2005.
+**************************************************************************
+
+(302) Simply use autoreconf in autogen.sh, it is much simpler and the
+recommended way in the autotools documentation. Removed INSTALL,
+install-sh and mkinstalldirs, they are either unused or automatically
+generated by autogen.sh.
+
+(303) Moved GLUT_INIT_STATE to <GL/freeglut_ext.h>, it is not part of the
+original GLUT.
+
+**************************************************************************
+* Changes on August 05, 2006.
+**************************************************************************
+
+(304) Updated build requirements for SuSE 10.1.
+
+(305) Check fgets for return value to avoid warnings.
+
+**************************************************************************
+* Changes on September 20, 2006
+**************************************************************************
+
+(306)  Changed "fgStructure.GameMode" to "fgStructure.GameModeWindow" to
+reflect better what it is
+
+**************************************************************************
+* Changes on September 21, 2006
+**************************************************************************
+
+(307)  Added an end-of-line character to a warning message about an unknown
+X event type
+
+(308)  Fixing a problem in which "glutGetWindow" would return a menu's window
+instead of the menu's parent window
+
+(309)  Added some handy comments, spacing, fixed a typo in a comment
+
+(310)  Changed "TARGET_HOST_UNIX_X11" to "TARGET_HOST_POSIX_X11" to avoid
+trademark issues, per Joe Krahn; also rationalized the other "TARGET_HOST"
+definitions
+
+(311)  Added futher callback functionality to the CallbackMaker demo program.
+Also added a prompt for user input to highlight a difference betwen GLUT
+and "freeglut"
+
+(312)  Added multisampling support for *nix and Windows; some other pixel
+format changes for Windows
+
+(313)  Added Markus Henschel's change (e-mail to developers' list, June 28,
+2006) to have the "glutInitDisplayString" ignore numerical assignments to
+tokens as a temporary fix.
+
+(314)  Fixed buy #1398196 in the bug tracker to the effect that passing the
+wrong argument in "fghSleepForEvents" can cause odd delays
+