implemented SUPER key/modifier support on windows
[freeglut] / ChangeLog
1 2012-01-09  John F. Fay <johnffay@cybertron.com>
2         * Released freeglut 2.8.0 a few days ago and am restarting the ChangeLog
3         * Added 'cmake' support
4         * Moved source files from 'src' directory to 'src/Common' directory with
5         an eye to moving platform-specific code to separate files in separate
6         directories
7  
8 2009-08-10  Sven Panne  <sven.panne@aedion.de>
9
10         * include/GL/freeglut_ext.h,include/GL/freeglut_std.h,src/freeglut_ext.c,
11         src/freeglut_init.c,src/freeglut_internal.h,src/freeglut_state.c,
12         src/freeglut_window.c,src/freeglutdll.def: Added support for sRGB
13         framebuffers via the GLX_ARB_framebuffer_sRGB / WGL_ARB_framebuffer_sRGB
14         extensions. Added support for context profiles via the new parts of the
15         GLX_ARB_create_context / WGL_ARB_create_context extensions.
16
17 2009-06-11  Paul Blew  <paul.blew@northgatearinso.com>
18
19         * replaced broken IDE based OpenWatcom build with a makefile based one
20
21 2009-06-11  Sven Panne  <sven.panne@aedion.de>
22
23         * include/GL/freeglut_std.h: Disable the ATEXIT_HACK for Watcom, their
24         "exit" function has a different calling convention, leading to
25         compilation errors.
26
27 2009-05-24  Sven Panne  <sven.panne@aedion.de>
28
29         * freeglut_static_vs2008.vcproj,freeglut_vs2008.vcproj,
30           freeglut_vs2008.sln,freeglut_vs2008_static.sln: Move all files related
31           to Visual Studio 2008 into 2 directories, one for the normal DLL
32           build, and one for the static build. We should do this for other IDEs,
33           too.
34
35 2009-05-22  Sven Panne  <sven.panne@aedion.de>
36
37         * include/GL/freeglut_std.h: Avoid warnings when the ATEXIT_HACK is used
38           with GCC, making the hack even uglier.
39
40         * include/GL/freeglut_std.h,src/freeglut_init.c,src/freeglut_internal.h,
41           src/freeglut_menu.c,src/freeglut_window.c,src/freeglutdll.def: Added the
42           ugly ATEXIT_HACK from GLUT 3.7, making freeglut binary compatible with the
43           GLUT DLLs out in the wild.
44
45         * src/freeglutdll.def: Removed obsolete lines. Fixed version number.
46
47         * freeglut_vs2008.vcproj: Use our module definition file, so we get
48           undecorated names in the resulting DLL, just like the classic GLUT DLL
49           from Nate Robins.
50
51 2009-04-05  Sven Panne  <sven.panne@aedion.de>
52
53         * Makefile.am: Added more project/workspace/... files to distribution.
54         * .cvsignore,doc/.cvsignore,include/.cvsignore,include/GL/.cvsignore,
55           progs/.cvsignore,progs/demos/.cvsignore,
56           progs/demos/CallbackMaker/.cvsignore,progs/demos/Fractals/.cvsignore,
57           progs/demos/Fractals_random/.cvsignore,progs/demos/Lorenz/.cvsignore,
58           progs/demos/One/.cvsignore,progs/demos/shapes/.cvsignore,
59           src/.cvsignore: Removed remnants of CVS.
60
61 2009-03-30  Sven Panne  <sven.panne@aedion.de>
62
63         * progs/demos/smooth_opengl3/smooth_opengl3.c: Make the example fully
64           OpenGL-3.1-compliant.
65
66 2009-03-27  Sven Panne  <sven.panne@aedion.de>
67
68         * progs/demos/smooth_opengl3/smooth_opengl3.c: Make Visual C happy by
69           including stddef.h and explicitly marking some literals as float.
70
71 2009-03-26  Sven Panne  <sven.panne@aedion.de>
72
73         * src/freeglut_init.c,src/freeglut_input_devices.c: Unbreak the build:
74           C++ style comments are not allowed in ISO C90
75
76 2009-03-19  John F. Fay <john.fay.ctr@eglin.af.mil>
77
78         * src/freeglut_input_devices.c: Fixing "freeglut_input_devices.c" for
79           MSVS2005 and later per e-mail from Diederick Niehorster dated Thu
80           3/19/2009 6:57 AM
81
82 2009-03-17  John F. Fay <john.fay.ctr@eglin.af.mil>
83
84         * src/freeglut_init.c, src/freeglut_input_devices.c: Removing some build
85           warnings from deprecated functions for VS2008 per e-mail from
86           Diederick Niehorster dated Tue 3/10/2009
87         * freeglut_static_vs2008.vcproj, freeglut_vs2008.sln,
88           freeglut_vs2008.vcproj,
89           progs/demos/CallbackMaker/CallbackMakerStatic_vs2008.vcproj,
90           progs/demos/CallbackMaker/CallbackMaker_vs2008.vcproj,
91           progs/demos/Fractals/FractalsStatic_vs2008.vcproj,
92           progs/demos/Fractals/Fractals_vs2008.vcproj,
93           progs/demos/Fractals_random/Fractals_randomStatic_vs2008.vcproj,
94           progs/demos/Fractals_random/Fractals_random_vs2008.vcproj,
95           progs/demos/Lorenz/lorenzStatic_vs2008.vcproj,
96           progs/demos/Lorenz/lorenz_vs2008.vcproj,
97           progs/demos/One/oneStatic_vs2008.vcproj,
98           progs/demos/One/one_vs2008.vcproj, progs/demos/demos_vs2008.sln,
99           progs/demos/shapes/shapesStatic_vs2008.vcproj,
100           progs/demos/shapes/shapes_vs2008.vcproj,
101           progs/demos/smooth_opengl3/smooth_opengl3Static_vs2008.vcproj,
102           progs/demos/smooth_opengl3/smooth_opengl3_vs2008.vcproj: Adding Visual
103           Studio 2008 solution and project files
104
105 2009-03-16  Sven Panne  <sven.panne@aedion.de>
106
107         * src/freeglut_init.c,src/freeglut_window.c: Set the default number of
108           samples per pixel to 4 and actually use the value set with
109           glutSetOption(GLUT_MULTISAMPLE,...) in Windows code. Previously the
110           Windows code used a hardwired value of 4 and the GLX code had a
111           default of 0, neither made much sense. Similarly, set the default
112           number of auxiliary buffers to 1 and use that value when GLUT_AUX is
113           used. Note: There latter token has the same value as GLUT_AUX1, and
114           for historical reasons we seem to have 2 APIs to set the number of
115           auxiliary buffers: Explicitly using GLUT_AUX1 ... GLUT_AUX4, and using
116           a combination of GLUT_AUX with glutSetOption. The default of 1 ensures
117           consistent behaviour in both cases.
118         * src/freeglut_state.c: Added GLUT_AUX and GLUT_MULTISAMPLE as possible
119           parameters for glutGet, making things more symmetric with
120           glutSetOption.
121         * src/freeglutdll.def: Added missing API entries.
122
123 2009-03-10  John F. Fay <john.fay.ctr@eglin.af.mil>
124
125         * progs/demos/demos.dsw: Adding the "smooth_opengl3" demo
126
127 2009-03-09  John F. Fay <john.fay.ctr@eglin.af.mil>
128
129         * include/GL/freeglut_std.h: Making the definition of
130           "WIN32_LEAN_AND_MEAN" conditional to enhance compatibility with GLEW
131           per suggestion by Diederick C. Niehorster in e-mail dated Mon 3/9/2009
132           8:06 AM
133         * progs/demos/Fractals/fractals.c: Setting the "fractals" demo initial
134           number of levels to 4 per suggestion from Diederick C. Niehorster
135           [diederick@niehorster.eu] in e-mail dated Mon 3/9/2009 5:29 AM
136
137 2009-03-01  John F. Fay <john.fay.ctr@eglin.af.mil>
138
139         * progs/demos/CallbackMaker/CallbackMaker.c,
140           progs/demos/Lorenz/lorenz.c, progs/demos/shapes/shapes.c: Fixing
141           Microsoft compatibility with the new "vsnprintf" by putting an
142           underscore in front of it if WIN32 is defined but __CYGWIN__ is not
143
144 2009-03-01  Sven Panne <sven.panne@aedion.de>
145
146         * configure.ac: We do not depend on GLU anymore
147         * README.win32: Added notes for building under Cygwin
148         * src/Makefile.am: To build shared libraries on Windows, one has to
149           declare explicitly that there are no undefined symbols during linking.
150           No idea why, but this seems to be the only way to enable this on
151           Cygwin via -mno-cygwin. Hopefully this won't cause problems on other
152           platforms (which has to be tested).
153         * progs/demos/smooth_opengl3/smooth_opengl3.c: Windows fun again: Use
154           the correct calling convention for OpenGL extension entries.
155
156 2009-02-28  Sven Panne <sven.panne@aedion.de>
157
158         * progs/demos/smooth_opengl3/smooth_opengl3.c: When -mno-cygwin is used,
159           we get ancient GL headers, so be a bit more conservative.
160         * progs/demos/Fractals_random/fractals_random.c,
161           progs/demos/Lorenz/lorenz.c, progs/demos/shapes/shapes.c:
162           _CrtDumpMemoryLeaks and its header are Microsoft-specific, e.g. Cygwin
163           doesn't provide them.
164         * src/freeglut_window.c: Do not try to destroy a GLX context when there
165           is none, e.g. when glXCreateContextAttribsARB is not there.
166         * src/freeglut_joystick.c: Use snprintf or _snprintf instead of the
167           potentially dangerous sprintf to avoid warnings.
168           
169           NOTE: Due to excessive use of #ifdefs, the joystick code is on the
170           border of being unmaintainable! I could only check that it compiles
171           cleanly on my Linux box. Others should test this on their platforms
172           (Windows, Mac OS X, *BSD) to make sure that nothing has been broken.
173         * progs/demos/CallbackMaker/CallbackMaker.c,
174           progs/demos/Lorenz/lorenz.c, progs/demos/shapes/shapes.c: Use
175           vsnprintf instead of the potentially dangerous sprintf to avoid
176           warnings. Using snprintf directly would be a little bit more tricky,
177           because once again Microsoft decided to avoid followind standards and
178           provide _snprintf instead. We could use this, too, but this would
179           require an additional autoconf check, which I'd like to avoid, if
180           possible.
181           
182           Note: If VS *still* issues warnings, but this time about vsnprintf,
183           somebody should add some pragmas or whatever is needed to shut up that
184           warning, it would be silly.
185         * progs/demos/Lorenz/lorenz.c: Position the distance message closer to
186           the middle of the window, it has been far, far off to the upper right.
187         * src/freeglut_internal.h: Synched version number with configure.ac. We
188           should better remove this redundancy and calculate this from
189           configure.ac directly.
190
191 2009-02-19  John F. Fay <john.fay.ctr@eglin.af.mil>
192
193         * progs/demos/smooth_opengl3/smooth_opengl3.dsp,
194           progs/demos/smooth_opengl3/smooth_opengl3Static.dsp: Fixing the
195           DOS/Linux line ending problems in the progs/demos/smooth_opengl3
196           project files
197
198 2009-02-18  John F. Fay <john.fay.ctr@eglin.af.mil>
199
200         * src/freeglut_window.c: Fixing a build error caused by a variable
201           declaration being out of place
202
203 2009-02-15  Sven Panne <sven.panne@aedion.de>
204
205         * progs/demos/smooth_opengl3/smooth_opengl3.c: Final changes to make the
206           example fully OpenGL-3.0-compliant:
207           
208           * Use vertex attribute arrays.
209           
210           * Use our own projection matrix.
211           
212           * Do not use deprecated vertex/fragment shader variables.
213         * progs/demos/smooth_opengl3/smooth_opengl3.c: Use GLSL shaders (still
214           1.20, though). Dump GL info.
215         * progs/demos/smooth_opengl3/smooth_opengl3.c: Added a commandline
216           option for 'classic' contexts. Aesthetic changes.
217         * progs/demos/smooth_opengl3/smooth_opengl3.c: Use VBOs in new example.
218           Added a few comments.
219
220 2009-02-14  Sven Panne <sven.panne@aedion.de>
221
222         * configure.ac, progs/demos/Makefile.am, progs/demos/smooth_opengl3,
223           progs/demos/smooth_opengl3/Makefile.am,
224           progs/demos/smooth_opengl3/smooth_opengl3.c,
225           progs/demos/smooth_opengl3/smooth_opengl3.dsp,
226           progs/demos/smooth_opengl3/smooth_opengl3Static.dsp: Initial version
227           of a fully OpenGL-3.0-compliant of the famous smooth.c from the Red
228           Book. What has been done already:
229           
230           * Explicitly request a forward-compatible 3.0 context
231           
232           * Report GL errors, if any, at a few crucial places
233           
234           * Replaced gluOrtho2D with a home-grown matrix + glLoadMatrixf
235           
236           What remains to be done:
237           
238           * Use vertex shaders and fragment shaders
239           
240           * Use vertex buffer objects
241
242 2009-02-13  Sven Panne <sven.panne@aedion.de>
243
244         * README: Mention autogen.sh
245         * src/freeglut_window.c: Synchronized WGL behavior with GLX
246           implementation: Do not call the new context creation API when it is
247           not required. Fixing a bug in a previous commit on the way... :-}
248         * src/freeglut_internal.h, src/freeglut_window.c: More refactorings:
249           Removed useless return value. Simplified control structures even more.
250         * src/freeglut_window.c: Refactoring only (replace nested conditionals
251           with guard clauses), making the normal path of execution much clearer.
252         * configure.ac: We have added some API entries, so we have to update
253           library version information conforming to
254           http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
255         * autogen.sh, configure.ac: Avoid CR\LF vs. LF troubles when using
256           TortoiseSVN plus Cygwin.
257         * .: Ignore config.lt, too. It seems to be generated by recent
258           autotools.
259
260 2009-02-13  John F. Fay <john.fay.ctr@eglin.af.mil>
261
262         * src/freeglut_internal.h, src/freeglut_main.c, src/freeglut_window.c:
263           Adding OpenGL 3.0 context detection for Windows per e-mail from Paul
264           Martz dated Thu 2/12/2009 9:03 AM (more or less)
265
266 2009-02-03  John F. Fay <john.fay.ctr@eglin.af.mil>
267
268         * README: Adding some instructions about building on a *nix platform to
269           the 'README' file
270         * include/GL/freeglut_ext.h, src/freeglut_main.c: Removing some errant
271           tabs, fixing ticket #2137721, and adding special-key capability to
272           recognizing the NumLock, Delete, and keypad '5' keys
273         * src/freeglut_joystick.c, src/freeglut_main.c: A further response to
274           bug [ 1804696 ] Warnings when building on OpenSolaris -- per comment
275           by Nigel Stewart on that bug report
276
277 2009-02-02  John F. Fay <john.fay.ctr@eglin.af.mil>
278
279         * src/freeglut_internal.h, src/freeglut_joystick.c: Fixing bug [ 1804696
280           ] Warnings when building on OpenSolaris as updated 2/2/09 by Nigel
281           Stewart
282
283 2008-11-20  Sven Panne <sven.panne@aedion.de>
284
285         * src/freeglut_glutfont_definitions.c, src/freeglut_internal.h: Yet
286           another try to make the font definitions compile on all platforms.
287
288 2008-11-17  John F. Fay <john.fay.ctr@eglin.af.mil>
289
290         * src/freeglut_glutfont_definitions.c, src/freeglut_internal.h: Allowing
291           "freeglut" to compile without errors under *nix. Before this, there
292           were problems with conflicting definitions of the GLUT font
293           definitions.
294
295 2008-11-06  Sven Panne <sven.panne@aedion.de>
296
297         * src/freeglut_main.c: Ooops, forgot one file in the previous commit
298           (fix for "--without-x").
299         * configure.ac: Use autoconf to detect gettimeofday instead of broken
300           #ifdef.
301           
302           Note: freeglut compiles under Cygwin now, even when "--without-x" is
303           used for configuration.
304         * configure.ac: We need to link against winmm under Cygwin when
305           --without-x is used to get timeBeginPeriod, timeEndPeriod, joyGetPosEx
306           and joyGetDevCaps.
307         * src/freeglut_window.c: Fixed first parameter of CreateWindow call,
308           used for multisampling on Windows. It compiles, but it is otherwise
309           untested.
310
311 2008-11-05  Sven Panne <sven.panne@aedion.de>
312
313         * src/freeglut_misc.c: Be conservative about the presence of
314           GL_TABLE_TOO_LARGE.
315         * src/freeglut_glutfont_definitions.c, src/freeglut_stroke_mono_roman.c,
316           src/freeglut_stroke_roman.c: freeglut_internal.h needs some GL types,
317           but it is not self-contained. TODO: Move freeglut.h #include into
318           freeglut_internal.h itself?
319         * src/freeglut_window.c: Removed the annoying "Unable to create direct
320           context rendering..." warning, it served no real purpose, and on some
321           platforms there simply is no such thing as a direct context.
322         * progs/demos/CallbackMaker, progs/demos/Fractals,
323           progs/demos/Fractals_random, progs/demos/Lorenz, progs/demos/One,
324           progs/demos/shapes: Ignore *.exe
325         * src/freeglut_ext.c: Handle new glutInitContext* API entries in
326           glutGetProcAddress
327         * src/freeglut_internal.h: Make freeglut compile under Cygwin, which has
328           an ancient GLX header
329
330 2008-11-02  Sven Panne <sven.panne@aedion.de>
331
332         * include/GL/freeglut_ext.h, src/freeglut_init.c,
333           src/freeglut_internal.h, src/freeglut_state.c, src/freeglut_window.c:
334           Added OpenGL 3.0 context creation API entries
335           
336           glutInitContextVersion, glutInitContextFlags
337           
338           and their related constants
339           
340           GLUT_INIT_MAJOR_VERSION GLUT_INIT_MINOR_VERSION GLUT_INIT_FLAGS
341           
342           GLUT_DEBUG GLUT_FORWARD_COMPATIBLE
343           
344           Note that this works with GLX only currently, the glutInitContext* API
345           entries have no effect for WGL yet.
346           
347           TODO: Centralize the context creation code for WGL (the harder part)
348           and use the new wglCreateContextAttribsARB API entry (the easy part,
349           re-use most of the GLX code).
350         * src/freeglut_window.c: Refactored GLX context creation into a single
351           function, centralizing things to be changed for OpenGL 3.0 context
352           creation and removing some cut-n-paste.
353         * src/freeglut_ext.c, src/freeglut_internal.h: Make a
354           wgl/glXGetProcAddress abstraction available internally. We will need
355           this to get the new context creation function.
356         * src/freeglut_misc.c: Do not depend on GLU, it will vanish in the
357           future, at least in its current form.
358         * src/freeglut_internal.h: Removed superfluous #includes.
359         * configure.ac: Fix for bug #1709675 ("probably not be so
360           ISO-conformant"): The C compiler flag -Werror is not used by default
361           anymore, a separate configure flag --enable-warnings-as-errors has
362           been introduced for this purpose, which is off by default.
363         * configure.ac: Added AM_PROG_CC_C_O to configure.ac, removing a warning
364           during autogen.sh. This flag seems to be necessary for per-target
365           flags (used in demo programs) nowadays.
366
367 2008-07-21  John F. Fay <john.fay.ctr@eglin.af.mil>
368
369         * configure.ac, src/Makefile.am: Implementing a patch from Jocelyn
370           Frechot (thank you, Jocelyn) that "should enable the XInput extension
371           management with the autotools." See e-mail of Sun 7/20/2008 12:01 PM.
372
373 2008-07-10  John F. Fay <john.fay.ctr@eglin.af.mil>
374
375         * src/freeglut_ext.c: Adding "glutExit" to the functions in
376           "fghGetProcAddress" in accordance with an e-mail from Jocelyn Frechot
377           dated Tue 7/8/2008 12:26 PM
378
379 2008-04-05  John F. Fay <john.fay.ctr@eglin.af.mil>
380
381         * src/freeglut_main.c: Adding "SC_MONITORPOWER" and other new options to
382           the "wParam" option list (e-mail from Ron Larkin, 3/17/08, 11:00 AM)
383
384 2007-12-02  John F. Fay <john.fay.ctr@eglin.af.mil>
385
386         * include/GL/freeglut_ext.h, src/freeglut_display.c, src/freeglut_ext.c,
387           src/freeglut_init.c, src/freeglut_internal.h, src/freeglut_main.c,
388           src/freeglut_state.c, src/freeglut_window.c: Adding
389           "glutFullScreenToggle" for X11 -- still needs implementation in
390           Windows (e-mail by Jocelyn Frechot, Sun 11/25/2007 11:29 AM)
391
392 2007-12-01  John F. Fay <john.fay.ctr@eglin.af.mil>
393
394         * src/freeglut_window.c: Fixing the window position for asynchronous X11
395           implementations (e-mail by Jocelyn Frechot, Sun 11/25/2007 11:29 AM)
396
397 2007-11-26  John F. Fay <john.fay.ctr@eglin.af.mil>
398
399         * progs/demos/Fractals/fractals.c: Making a demo program that uses
400           "glutMainLoopEvent"
401
402 2007-11-12  John F. Fay <john.fay.ctr@eglin.af.mil>
403
404         * include/GL/freeglut_ext.h, src/freeglut_ext.c, src/freeglut_init.c,
405           src/freeglut_internal.h, src/freeglut_state.c,
406           src/freeglut_structure.c, src/freeglut_window.c: Implementing Jocelyn
407           Frechot's changes -- see e-mail of Thursday, 11/8/2007 9:12 AM.
408
409 2007-10-02  John F. Fay <john.fay.ctr@eglin.af.mil>
410
411         * src/freeglut_joystick.c: Removing more Win64 build warnings from
412           joystick code
413
414 2007-09-30  John F. Fay <john.fay.ctr@eglin.af.mil>
415
416         * src/freeglut_main.c: Removing the final compiler warning when building
417           on Win75 -- thank you, Antonio Mattos.
418
419 2007-09-29  John F. Fay <john.fay.ctr@eglin.af.mil>
420
421         * src/freeglut_cursor.c: Removing the remaining compiler warnings from
422           the cursor code, thanks to Antonio Mattos of Brazil. The double
423           type-casting is needed because of a bug in the new MSVC; there is a
424           discussion on the web on this subject.
425
426 2007-09-25  John F. Fay <john.fay.ctr@eglin.af.mil>
427
428         * src/freeglut_cursor.c: Changing the cursor definition macro for newer
429           versions of MSVC -- thanks to "Mattos" of Brazil
430         * src/freeglut_window.c: More changes for Jocelyn Frechot's
431           multisampling changes. The library builds now. It still needs some
432           testing with sample cases under X11.
433
434 2007-09-23  John F. Fay <john.fay.ctr@eglin.af.mil>
435
436         * src/freeglut_window.c: Fixing a remaining bug in the multisampling
437           change ... there may be more ...
438
439 2007-09-22  John F. Fay <john.fay.ctr@eglin.af.mil>
440
441         * src/freeglut_internal.h, src/freeglut_state.c,
442           src/freeglut_structure.c, src/freeglut_window.c: Putting in Jocelyn
443           Frechot's X11 visual context changes. THIS WILL BREAK THE BUILD as I
444           am unable to test it on a Linux machine here. Somebody please test it
445           for me.
446
447 2007-09-21  John F. Fay <john.fay.ctr@eglin.af.mil>
448
449         * src/freeglut_init.c, src/freeglut_main.c, src/freeglut_misc.c:
450           Removing compiler warnings in MSVC 2005 build
451         * include/GL/freeglut_ext.h, src/freeglut_init.c: Implementing Larry
452           Ramey's "glutExit" feature (see e-mails from him on 11/9/05, 6/28/06)
453
454 2007-09-19  John F. Fay <john.fay.ctr@eglin.af.mil>
455
456         * include/GL/freeglut_std.h, src/freeglut_window.c: Implementing first
457           part of Windows version of "GLUT_CAPTIONLESS" and "GLUT_BORDERLESS"
458           per feature request "[ 1197016 ] need GLUT_CAPTIONLESS window option".
459           Needs more work; menus are slightly mispositioned, X11 version does
460           not support it, banner appears at beginning but disappears on window
461           resize. But this is a start.
462         * src/freeglut_main.c: Fixing Linux key-repeat mode bug reported in "[
463           1796845 ] Keyboard events are lost when key repeat is enabled."
464         * src/freeglut_joystick.c: Fixing a build error on SuSE described in bug
465           report "[ 1792047 ] freeglut_joystick.c error"
466
467 2007-09-18  John F. Fay <john.fay.ctr@eglin.af.mil>
468
469         * src/freeglut_window.c: Implementing feature request "[ 947118 ] Popup
470           menu is hidden under the TOPMOST window"
471         * src/freeglut_menu.c: Adding Takeshi Nishimura's Feature Request "[
472           1045202 ] Cope with a menu with many items" -- sorry it took so long.
473         * src/freeglut_window.c: Addressing Feature Request #1307049 that
474           "freeglut" should return 0 if "glutGetWindow" is called without a
475           prior call to "glutInit", rather than terminating on error.
476         * freeglut.dep, freeglut.mak, freeglut_static.dep, freeglut_static.mak:
477           Added Windows "nmake" Makefiles and dependency files for the two
478           "freeglut" projects in accordance with Feature Request #1454543
479
480 2007-09-16  John F. Fay <john.fay.ctr@eglin.af.mil>
481
482         * src/freeglut_window.c: Fixing bug #1688954, submitted in Marcy '07. I
483           changed "FREEGLUT" to _T("FREEGLUT") and nothing changed on my Windows
484           XP system. If this will allow it to work on Vista, then in it goes.
485         * src/freeglut_gamemode.c, src/freeglut_internal.h, src/freeglut_main.c,
486           src/freeglut_state.c, src/freeglut_structure.c, src/freeglut_window.c:
487           Fixing bug report #1052151 from October 2004.
488
489 2006-11-28  John F. Fay <john.fay.ctr@eglin.af.mil>
490
491         * FrequentlyAskedQuestions: Adding a Frequently Asked Questions file
492
493 2006-09-28  Joe Krahn <krahn@niehs.nih.gov>
494
495         * src/freeglut_state.c, src/freeglut_window.c: Removed incorrect comment
496           about internal WGL/ARB definitions. I actually had put those comments
497           in because I had meant to go back and re-check the WGL extension. But,
498           maybe locally defined extensions should be kept in a separate include
499           file?
500
501 2006-09-27  Joe Krahn <krahn@niehs.nih.gov>
502
503         * freeglut.dsp, freeglut.dsw, freeglut_static.dsp,
504           progs/demos/CallbackMaker/CallbackMaker.dsp,
505           progs/demos/CallbackMaker/CallbackMakerStatic.dsp,
506           progs/demos/Fractals/Fractals.dsp,
507           progs/demos/Fractals/FractalsStatic.dsp,
508           progs/demos/Fractals_random/Fractals_random.dsp,
509           progs/demos/Fractals_random/Fractals_randomStatic.dsp,
510           progs/demos/Lorenz/lorenz.dsp, progs/demos/Lorenz/lorenzStatic.dsp,
511           progs/demos/One/one.dsp, progs/demos/One/oneStatic.dsp,
512           progs/demos/demos.dsw, progs/demos/shapes/shapes.dsp,
513           progs/demos/shapes/shapesStatic.dsp: Undo svn:eol-style=CR/LF for MSVC
514           project files.
515
516 2006-09-26  Joe Krahn <krahn@niehs.nih.gov>
517
518         * include/GL/freeglut_std.h, src/freeglut_joystick.c,
519           src/freeglut_state.c, src/freeglut_window.c: Added
520           FREEGLUT_LIB_PRAGMAS to control MS library pragmas, and fixed NOMINMAX
521           define.
522         * freeglut.dsp, freeglut.dsw, freeglut_static.dsp,
523           progs/demos/CallbackMaker/CallbackMaker.dsp,
524           progs/demos/CallbackMaker/CallbackMakerStatic.dsp,
525           progs/demos/Fractals/Fractals.dsp,
526           progs/demos/Fractals/FractalsStatic.dsp,
527           progs/demos/Fractals_random/Fractals_random.dsp,
528           progs/demos/Fractals_random/Fractals_randomStatic.dsp,
529           progs/demos/Lorenz/lorenz.dsp, progs/demos/Lorenz/lorenzStatic.dsp,
530           progs/demos/One/one.dsp, progs/demos/One/oneStatic.dsp,
531           progs/demos/demos.dsw, progs/demos/shapes/shapes.dsp,
532           progs/demos/shapes/shapesStatic.dsp: Added svn:eol-style=CRLF property
533           to MSVC project/workspace files.
534
535 2006-09-25  John F. Fay <john.fay.ctr@eglin.af.mil>
536
537         * src/freeglut_window.c: Fixing a typo bug in the display mode checking
538           (removing multisampling if it is not supported)
539
540 2006-09-25  Joe Krahn <krahn@niehs.nih.gov>
541
542         * src/freeglut_state.c: Fixed a small mistake in the previous commit for
543           glutGet.
544         * src/freeglut_state.c: Added proper support for number of mouse buttons
545           in X11, and a keyboard in Windows CE. Also, several glutGet results
546           returning TRUE/FALSE were changed to 1/0, because the actual return
547           type is int (although they are technically the same in practice).
548
549 2006-09-24  Joe Krahn <krahn@niehs.nih.gov>
550
551         * src/freeglut_init.c, src/freeglut_internal.h, src/freeglut_main.c:
552           Converted Time counter to a uniform unsigned long it value. The
553           initialized flag was redundant with the main Initialized flag, and
554           conversion of timeval to milliseconds in POSIX makes the code cleaner.
555           Timeval has a longer range, but the time value is already limited by
556           the GLUT API.
557
558 2006-09-23  Joe Krahn <krahn@niehs.nih.gov>
559
560         * src/freeglut_gamemode.c, src/freeglut_internal.h, src/freeglut_main.c:
561           Removed WindowState.IsGameMode; it is redundant with
562           Structure.GameModeWindow
563
564 2006-09-21  John F. Fay <john.fay.ctr@eglin.af.mil>
565
566         * src/freeglut_state.c, src/freeglut_window.c: Adding support for the
567           multisampling query per bug report 1274193
568         * ChangeLog, src/freeglut_main.c: Fixing Bug #1398196 - Windows message
569           argument
570
571 2006-09-21  Joe Krahn <krahn@niehs.nih.gov>
572
573         * src/freeglut_cursor.c: test (comment edited)
574
575 2006-09-21  John F. Fay <john.fay.ctr@eglin.af.mil>
576
577         * ChangeLog, src/freeglut_init.c: Adding temporary fix to
578           "glutInitDisplayString" to ignore numerical assignments
579         * ChangeLog, src/freeglut_window.c: Adding multisampling to *nix and
580           Windows; also some other pixel format enhancements to Windows
581         * ChangeLog, progs/demos/CallbackMaker/CallbackMaker.c: Enhancing the
582           "CallbackMaker" demo
583         * ChangeLog, src/freeglut_cursor.c, src/freeglut_display.c,
584           src/freeglut_ext.c, src/freeglut_gamemode.c,
585           src/freeglut_glutfont_definitions.c, src/freeglut_init.c,
586           src/freeglut_input_devices.c, src/freeglut_internal.h,
587           src/freeglut_joystick.c, src/freeglut_main.c, src/freeglut_menu.c,
588           src/freeglut_misc.c, src/freeglut_state.c, src/freeglut_teapot.c,
589           src/freeglut_teapot_data.h, src/freeglut_window.c: Joe Krahn's changes
590           to "TARGET_HOST" defined constants
591         * ChangeLog, src/freeglut_internal.h, src/freeglut_joystick.c,
592           src/freeglut_main.c, src/freeglut_window.c: Fixing two minor bugs,
593           adding comments
594         * ChangeLog, src/freeglut_gamemode.c, src/freeglut_internal.h,
595           src/freeglut_menu.c, src/freeglut_state.c, src/freeglut_structure.c:
596           Changing "GameMode" to "GameModeWindow ... and testing whether I can
597           get to SVN directly
598
599 2006-08-05  Sven Panne <sven.panne@aedion.de>
600
601         * ChangeLog, progs/demos/Fractals/fractals.c,
602           progs/demos/Fractals_random/fractals_random.c,
603           progs/demos/Lorenz/lorenz.c: Check fgets for return value to avoid
604           warnings.
605         * freeglut.spec: Fixed typo in date
606         * freeglut.spec: Updated build requirements for SuSE 10.1
607
608 2005-10-12  Sven Panne <sven.panne@aedion.de>
609
610         * ., .cvsignore: Ooops, forgot to ingore INSTALL and install-sh in
611           previous commit...
612         * ChangeLog, include/GL/freeglut_ext.h, include/GL/freeglut_std.h: Moved
613           GLUT_INIT_STATE to <GL/freeglut_ext.h>, it is not part of the original
614           GLUT.
615         * ., .cvsignore, ChangeLog, INSTALL, autogen.sh, install-sh,
616           mkinstalldirs: Simply use autoreconf in autogen.sh, it is much simpler
617           and the recommended way in the autotools documentation. Removed
618           INSTALL, install-sh and mkinstalldirs, they are either unused or
619           automatically generated by autogen.sh.
620
621 2005-10-06  John F. Fay <john.fay.ctr@eglin.af.mil>
622
623         * include/GL/freeglut_ext.h: Allowing compilation of Windows version by
624           removing DLL decorations from deprecated joystick interface extensions
625         * src/freeglut_window.c: Implementing Stereo in Windows
626
627 2005-09-07  Sven Panne <sven.panne@aedion.de>
628
629         * ChangeLog, src/Makefile.am: Use target-specific *_CPPFLAGS, not the
630           deprecated INCLUDES.
631         * ChangeLog, autogen.sh: Use -Wall for automake to catch some buglets,
632           deprecated stuff, etc.
633
634 2005-09-04  Sven Panne <sven.panne@aedion.de>
635
636         * ChangeLog, autogen.sh: Silenced autogen.sh
637
638 2005-08-31  John F. Fay <john.fay.ctr@eglin.af.mil>
639
640         * freeglut.rc, freeglut.tgt, freeglut.wpj, freeglut_static.tgt:
641           Necessary files for Open Watcom support
642         * src/freeglut_internal.h: Adding Open Watcom support
643         * ChangeLog, README.win32: Documenting support for Open Watcom
644         * include/GL/freeglut_std.h: Implementing WATCOM support
645
646 2005-07-14  Sven Panne <sven.panne@aedion.de>
647
648         * src/freeglut_input_devices.c: Nuked useless bit-fiddling, pointed out
649           by John. I was a bit too quick to cut-n-paste the cfmakeraw()
650           definition into our code... :-]
651         * ChangeLog, src/freeglutdll.def: Synched the DLL definitions with
652           reality.
653         * ChangeLog, src/freeglut_cursor.c: Fixed the GLUT_CURSOR_INHERIT logic
654           once again...
655           
656           Note that this commit is untested, but at least it looks better than
657           before. We really a need a cursor test program.
658
659 2005-07-13  John F. Fay <john.fay.ctr@eglin.af.mil>
660
661         * src/freeglut_cursor.c: Fixing a cursor bug in \"GLUT_CURSOR_INHERIT\"
662
663 2005-07-13  Sven Panne <sven.panne@aedion.de>
664
665         * ChangeLog, configure.ac: Improve autoconf magic: To detect headers
666           like GL/gl.h, it might be necessary to temporarily use the X11 flags
667           found by AC_PATH_XTRA.
668         * ChangeLog, src/freeglut_joystick.c: Avoid gcc warnings for some
669           joystick code (e.g. on Solaris).
670         * src/freeglut_input_devices.c: Tiny cleanup only...
671         * ChangeLog, src/freeglut_input_devices.c: Solaris doesn't have
672           cfmakeraw, but it is only a convenience function for some
673           bit-fiddling, anyway.
674
675 2005-07-08  Sven Panne <sven.panne@aedion.de>
676
677         * ChangeLog, include/GL/freeglut_ext.h, src/freeglut_ext.c,
678           src/freeglut_internal.h: Made all the "glutJoystickXXX" functions part
679           of the freeglut extensions. If this is not what we want, we can easily
680           #ifdef this away again...
681         * ChangeLog, src/freeglut_geometry.c: Made a few global arrays "static",
682           avoiding namespace pollution. The only externally visible symbols
683           should either be from the GLUT API ("glutXXX") or internal freeglut
684           entities ("fgYYY"). Reformatted things a bit on the way.
685
686 2005-07-06  Sven Panne <sven.panne@aedion.de>
687
688         * ChangeLog, src/freeglut_main.c: We only have pending redisplay
689           callbacks when the window wants to be redisplayed *and* it is visible.
690           Otherwise we won't redraw, anyway, and immediately discover that
691           there's still something to do, etc. etc., leading to 100% CPU load.
692         * ChangeLog, src/freeglut_main.c: Removed redundant code.
693         * ChangeLog, src/freeglut_init.c: X11 only: Destroy the global menu
694           rendering context when deinitializing. The visual/context handling for
695           menus is still rather obscure, though...
696         * progs/demos/Lorenz/lorenz.c: Reverting previous commit: %lf is a valid
697           format specifier for the scanf familiy of functions only, not for the
698           printf family.
699
700 2005-07-05  John F. Fay <john.fay.ctr@eglin.af.mil>
701
702         * src/freeglut_main.c: Implementing the new menu context variable names
703           in Windows ...
704         * src/freeglut_internal.h: Changing a comment ... nothing big.
705         * progs/demos/Lorenz/lorenz.c: Fixing output formats ... nothing big
706
707 2005-07-05  Sven Panne <sven.panne@aedion.de>
708
709         * ChangeLog, src/freeglut_state.c, src/freeglut_window.c: X11 only: Free
710           XVisualInfo structures when they are not needed anymore, fixing a
711           space leak. Not perfect for menus yet...
712         * src/freeglut_internal.h, src/freeglut_window.c: Tiny change to make
713           grep's life easier: Rename the fields of the menu context. Not really
714           worth a ChangeLog entry...
715           
716           IMHO it looks like we could kill the whole MenuContext stuff, it is of
717           no use currently and some things look strange, like e.g. having a
718           context per menu. The latter is not OK when a menu is attached to
719           multiple windows.
720
721 2005-07-02  Sven Panne <sven.panne@aedion.de>
722
723         * ChangeLog, src/freeglut_init.c, src/freeglut_internal.h,
724           src/freeglut_main.c, src/freeglut_state.c: Handle modifiers in
725           MotionNotify events, too. This fixes bug #1227920 (glutGetModifiers
726           not set/allowed in mouse callbacks). In addition, some related cleanup
727           has been done.
728         * ChangeLog, src/freeglut_joystick.c: Partial fixes for bug #1218900
729           (freeglut-2.4.0 on FreeBSD).
730         * ChangeLog, Makefile.am: Remove wrong "execute" bits when creating a
731           distribution. This fixes bug #961938 (Executable bit set on non exe
732           files).
733         * configure.ac: Tiny cosmetic change, not worth a ChangeLog entry.
734         * ChangeLog: Added John's missing ChangeLog entry.
735
736 2005-07-01  John F. Fay <john.fay.ctr@eglin.af.mil>
737
738         * freeglut.dsp, freeglut_static.dsp: Adding the
739           \"freeglut_input_devices.c\" file to the Windows project files
740
741 2005-07-01  Sven Panne <sven.panne@aedion.de>
742
743         * ChangeLog, configure.ac, src/Makefile.am: Some steps toward
744           compilation under MinGW. Note that there are still linking troubles
745           for the examples.
746         * src/freeglut_internal.h: Fixed #ifdef for ChangeDisplaySettingsEx
747           prototype.
748         * ChangeLog, src/freeglut_input_devices.c: Silenced a signed/unsigned
749           mismatched via a cast.
750         * ChangeLog, src/freeglut_internal.h: MinGW is lacking a prototype for
751           ChangeDisplaySettingsEx, so supply one in this case. Note that this
752           should better be handled via autoconf than via cpp.
753         * ChangeLog, Makefile.am: Removed redundant files from EXTRA_DIST.
754
755 2005-06-30  Sven Panne <sven.panne@aedion.de>
756
757         * src/freeglut_main.c: Ooops, forgot to set the current window in the
758           last commit. I'll have to test better before committing... :-]
759         * ChangeLog, src/freeglut_main.c: When a window is iconified, only an
760           UnmapNotify is sent, not a VisibilityNotify, so we have to handle the
761           window status callback in the former case, too. This fixes bug #763442
762           (Call the visibility callback when minimizing a window).
763         * ChangeLog, src/freeglut_main.c: Cleaned up
764           CreateNotify/ConfigureNotify handling.
765         * src/freeglut_main.c: Ooops, forgot to dump a few fields in some
766           events...
767         * ChangeLog, configure.ac, src/freeglut_main.c: Added --enable-debug
768           configure flag. Currently it only turns on X11 event tracing, but in
769           the future we could add more.
770           
771           Note: freeglut_main.c could benefit from some restructuring to clean
772           up the #ifdefs and cut down the sizes of some extremely long
773           functions.
774         * ., .cvsignore: Ignore files generated during RPM build.
775
776 2005-06-23  John F. Fay <john.fay.ctr@eglin.af.mil>
777
778         * doc/freeglut_user_interface.html: Fixing the documentation regarding
779           callbacks and geometry shape additions
780         * progs/demos/Fractals/Fractals.dsp,
781           progs/demos/Fractals/FractalsStatic.dsp,
782           progs/demos/Fractals_random/Fractals_random.dsp,
783           progs/demos/Fractals_random/Fractals_randomStatic.dsp,
784           progs/demos/Lorenz/lorenz.dsp, progs/demos/Lorenz/lorenzStatic.dsp,
785           progs/demos/One/one.dsp, progs/demos/One/oneStatic.dsp,
786           progs/demos/shapes/shapes.dsp, progs/demos/shapes/shapesStatic.dsp:
787           Adding separate static library and DLL demonstration program projects
788         * progs/demos/CallbackMaker/CallbackMaker.dsp,
789           progs/demos/CallbackMaker/CallbackMakerStatic.dsp: Adding separate
790           demo program projects for static library and DLL versions
791         * progs/demos/demos.dsw: Adding support for separate static library demo
792           programs
793         * ChangeLog: Keeping current ...
794         * src/freeglut_input_devices.c: New file for Joe Krahn\'s dials input
795           device
796
797 2005-06-22  John F. Fay <john.fay.ctr@eglin.af.mil>
798
799         * src/freeglut_geometry.c: Fixing a bug in the Sierpinski sponge code
800           that made the application crash if called with number of levels < 0
801         * src/Makefile.am, src/freeglut_init.c, src/freeglut_internal.h,
802           src/freeglut_joystick.c, src/freeglut_state.c: Joe Krahn\'s input
803           (dials) device implementation.
804
805 2005-06-14  Sven Panne <sven.panne@aedion.de>
806
807         * ChangeLog, freeglut.spec: Added an RPM spec file based on the one
808           shipped with SuSE 9.3.
809
810 2005-06-10  James Jones <puggles@users.sourceforge.net>
811
812         * ChangeLog, configure.ac: Release of 2.4.0
813
814 2005-06-02  James Jones <puggles@users.sourceforge.net>
815
816         * ChangeLog, configure.ac, src/freeglut_internal.h: 2.4.0 Release
817           Candidate 5
818
819 2005-05-26  John F. Fay <john.fay.ctr@eglin.af.mil>
820
821         * src/freeglut_main.c: Takeshi Nishimura\'s changes to make the Windows
822           mouse wheel/button mapping match that of X11; also fixing a typo in
823           the associated mouse callback argument list
824
825 2005-05-26  James Jones <puggles@users.sourceforge.net>
826
827         * ChangeLog, configure.ac: 2.4.0 RC4 updates
828         * src/freeglut_main.c: Fix joysticks so they are polled by their timer
829           correctly. (Dan Torop)
830
831 2005-05-24  Sven Panne <sven.panne@aedion.de>
832
833         * ChangeLog, src/freeglut_gamemode.c: The original glutEnterGameMode()
834           returns the window id of the game mode window, not TRUE/FALSE, we
835           should better follow that. Note that most man pages claim that this
836           function returns void, but this is definitely wrong.
837         * ChangeLog, src/freeglut_gamemode.c, src/freeglut_main.c: When
838           switching to game mode under X11, no ConfigureNotify event will happen
839           and consequently no reshape callback will ever be called via the
840           normal mechanism. To fix this, note that the game mode window needs to
841           be resized and handle this before redraw.
842
843 2005-05-22  Sven Panne <sven.panne@aedion.de>
844
845         * ChangeLog, src/freeglut_ext.c: Guarantee consistency of
846           names/addresses in glutGetProcAddress by using a macro. In addition,
847           this avoids any non-constant initializer issues which might be raised
848           when using WinDoze GCCs. The additional code overhead is negligible,
849           at least for x86 (a few instructions per name).
850         * ChangeLog, configure.ac: Lowering minimum autoconf version required.
851
852 2005-05-20  James Jones <puggles@users.sourceforge.net>
853
854         * ChangeLog: Tag for 2.4.0 RC3
855         * ChangeLog: Notes
856
857 2005-05-19  Sven Panne <sven.panne@aedion.de>
858
859         * src/freeglut_gamemode.c: Fixed SF bug #1204256: Off-by-one error in
860           X11 mode switching. The code which changes the X11 video mode has an
861           off-by-one error, resulting in a wrong mode or segfault. I've
862           refactored the code slightly to make it hopefully clearer what's going
863           on and corrected some #ifdefs on the way. Now at least the "One" demo
864           works for me.
865         * src/freeglut_window.c: Fixed SF bug #1204261: Mini space leak when
866           creating an X11 window (X11 text property values have to be freed
867           after using them)
868
869 2005-05-18  John F. Fay <john.fay.ctr@eglin.af.mil>
870
871         * src/freeglut_gamemode.c: Removing a C++ comment and simplifying the
872           string handling
873
874 2005-05-17  John F. Fay <john.fay.ctr@eglin.af.mil>
875
876         * src/freeglut_gamemode.c: Misiek\'s changes to fix Game Mode--getting
877           display settings under Windows and setting the window size correctly
878           on all operating systems.
879
880 2005-05-16  James Jones <puggles@users.sourceforge.net>
881
882         * ChangeLog: Mark for 2.4 RC 2
883
884 2005-05-13  John F. Fay <john.fay.ctr@eglin.af.mil>
885
886         * src/freeglut_menu.c: Removing two unused variables so this will
887           compile on Linux with -Wall
888
889 2005-05-12  John F. Fay <john.fay.ctr@eglin.af.mil>
890
891         * ChangeLog: Updating the ChangeLog ...
892         * src/freeglut_internal.h, src/freeglut_main.c, src/freeglut_menu.c:
893           Takeshi Nishimura\'s menu changes--menus should now work properly. Use
894           the GLUT \"GLUTmech\" and \"walker\" demos to test them.
895         * src/freeglut_main.c: Takeshi Nishimura\'s menu fixes
896
897 2005-05-09  James Jones <puggles@users.sourceforge.net>
898
899         * ChangeLog, Makefile.am, configure.ac: Freeglut 2.4.0 Release Candidate
900           1
901
902 2005-05-06  Sven Panne <sven.panne@aedion.de>
903
904         * ChangeLog, progs/demos/shapes/shapes.c: Fixed a cuboctahedron vertex,
905           implemented wire mode for that shape.
906         * ChangeLog, progs/demos/shapes/shapes.c, src/freeglut_internal.h,
907           src/freeglut_main.c: Necessary compilation fixes for newer GCCs (e.g.
908           3.3.5, 4.0). Side effect: The shapes demo has a new 'i' key now.
909
910 2005-05-05  John F. Fay <john.fay.ctr@eglin.af.mil>
911
912         * ChangeLog: Updated the ChangeLog again ...
913
914 2005-05-04  John F. Fay <john.fay.ctr@eglin.af.mil>
915
916         * progs/demos/shapes/shapes.c: Replacing the original \"freeglut\"
917           \"shapes\" demo with the much snazzier OpenGLUT \"shapes\" demo. Many
918           thanks to the OpenGLUT community for writing it. The copyright notice
919           stays in the program.
920         * src/freeglut_main.c: Changing hard-coded constant (number of mouse
921           buttons = 3) to a \"glutDeviceGet\" call in two places under X11
922         * src/freeglutdll.def: Changing the version number from 2.0 to 2.4.0 ...
923           do we need to add any new interface functions?
924         * src/freeglut_internal.h: Removing an unused variable
925         * src/freeglut_window.c: Adding a comment on why \"freeglut\" differs
926           from GLUT in a particular way
927         * src/freeglut_joystick.c: Removing an unused function
928         * src/freeglut_init.c: Making the \"key repeat\" initialization
929           consistent with the rest of its usage; also making the
930           \"initDisplayString\" ever-so-slightly more general
931         * ChangeLog, TODO, src/freeglut_window.c: Updating the ChangeLog and
932           TODO files in preparation for the upcoming release
933
934 2005-04-29  John F. Fay <john.fay.ctr@eglin.af.mil>
935
936         * src/freeglut_joystick.c: Adding a \"TODO\" comment about dynamically
937           allocating joystick buttonj and axis arrays
938         * ChangeLog: Updationg the ChangeLog ...
939
940 2005-04-28  John F. Fay <john.fay.ctr@eglin.af.mil>
941
942         * README.win32: Adding a \"README.Win32\" file with instructions on how
943           to install \"freeglut\" under Windows.
944         * src/freeglut_main.c: Adding Window Exit event handling to the Windows
945           code; also adding a note that eventually it would be good to handle
946           the Window Entry event
947
948 2005-04-27  John F. Fay <john.fay.ctr@eglin.af.mil>
949
950         * src/freeglut_window.c: Fixing bug [ 1111218 ] fullscreen not working
951           Better late than never.
952         * src/freeglut_init.c: Fixing Bug Report [ 1160442 ]
953           glutGet(GLUT_ELAPSED_TIME) is too granular
954
955 2005-04-26  John F. Fay <john.fay.ctr@eglin.af.mil>
956
957         * src/freeglut_internal.h, src/freeglut_structure.c: Fixing the
958           typecasts on the callback fetches and invocations to allow
959           \"freeglut\" to compile with GCC 4.0
960         * src/freeglut_menu.c: Fixing erroneous implementation of Takeshi\'s fix
961         * src/Makefile.am: Changing include path from relative to absolute to
962           support off-directory builds (Yuri D\'Elia, March 22, 5:59 PM)
963         * LISEZ_MOI: Adding \"LISEZ-MOI\", the French version of \"README\"
964
965 2005-04-25  John F. Fay <john.fay.ctr@eglin.af.mil>
966
967         * ChangeLog: Updating the ChangeLog ... it seems to be something of a
968           stepchild if we\'re not careful.
969
970 2005-04-22  John F. Fay <john.fay.ctr@eglin.af.mil>
971
972         * src/freeglut_menu.c: Yuri D\'Elia\'s changes to get the virtual
973           maximum screen extent instead of the actual screen size.
974         * src/freeglut_gamemode.c: Yuri D\'Elia\'s changes to the game mode
975           window
976         * src/freeglut_structure.c: Change a hard-coded number to a defined
977           constant and add some initializations
978         * src/freeglut_cursor.c: Removing duplicate cursor code. This and the
979           previous change (in freeglut_main.c) apparently got combined.
980         * ChangeLog: Updating the ChangeLog to reflect activity over the past
981           few months
982         * src/freeglut_callbacks.c, src/freeglut_cursor.c,
983           src/freeglut_display.c, src/freeglut_gamemode.c,
984           src/freeglut_internal.h, src/freeglut_main.c, src/freeglut_menu.c,
985           src/freeglut_misc.c, src/freeglut_state.c, src/freeglut_structure.c,
986           src/freeglut_window.c: Trying again to change \"fgStructure.Window\"
987           to \"fgStructure.CurrentWindow\" and \"fgStructure.Menu\" to
988           \"fgStructure.CurrentMenu\" for easier maintenance.
989
990 2005-04-15  John F. Fay <john.fay.ctr@eglin.af.mil>
991
992         * ChangeLog: Updating the ChangeLog as a means of testing pCVSc
993         * src/freeglut_internal.h: Testing!
994
995 2005-03-23  Brian Paul
996
997         * include/GL/freeglut_ext.h: added comment about AUX flags
998
999 2005-02-16  Brian Paul
1000
1001         * src/freeglut_internal.h, src/freeglut_main.c, src/freeglut_menu.c,
1002           src/freeglut_structure.c, src/freeglut_window.c: fixes for menus being
1003           attached to multiple buttons/windows (John Fay)
1004         * src/freeglut_callbacks.c: added error check (John Fay)
1005
1006 2005-02-15  Brian Paul
1007
1008         * src/freeglut_init.c, src/freeglut_window.c: AUX buffers for Windows
1009           (John Fay)
1010
1011 2005-02-11  Brian Paul
1012
1013         * include/GL/freeglut_ext.h, src/freeglut_init.c, src/freeglut_window.c:
1014           Aux color buffer support. Pass one of GLUT_AUX[1234] to
1015           glutInitDisplayMode. Only implemented/tested on GLX, not Windows.
1016         * include/GL/freeglut_ext.h, src/freeglut_ext.c,
1017           src/freeglut_internal.h: Fix object/function pointer inconsistencies
1018           which are a problem for gcc 3.4.2. Added GLUTproc type, returned by
1019           glutGetProcAddress().
1020
1021 2005-01-23  Sven Panne <sven.panne@aedion.de>
1022
1023         * configure.ac: autoconf 2.58 is enough
1024         * src/freeglut_callbacks.c, src/freeglut_internal.h: Stylistic change
1025           only (added "do { ... } while( 0 )" around multi-statement macros)
1026         * configure.ac, src/freeglut_joystick.c, src/freeglut_main.c: Testing
1027           for errno.h is overkill. :-)
1028         * src/freeglut_cursor.c, src/freeglut_main.c: Windows platforms only:
1029           Merged some cursor-related code from John Fay (with minor changes)
1030
1031 2005-01-05  Sven Panne <sven.panne@aedion.de>
1032
1033         * src/freeglut_ext.c, src/freeglut_font.c, src/freeglut_main.c,
1034           src/freeglut_state.c, src/freeglut_window.c: Hopefully removed all
1035           damage done by commits without merge
1036         * ChangeLog, src/freeglut_cursor.c: Reworked the X11 part of
1037           glutSetCursor, fixing bug #764187 (Variable mouse pointers don't work)
1038           on the way: * Use slightly more compatible cursor shapes for
1039           GLUT_CURSOR_RIGHT_ARROW and GLUT_CURSOR_LEFT_ARROW. * Refactored and
1040           fixed the erroneous code for GLUT_CURSOR_NONE. * Removed the incorrect
1041           use of XFreeCursor and use a cache of cursors instead. Cursors are
1042           never freed now, we could do this e.g. via reference countig if this
1043           is really needed. * Fixed error handling. * Unknown cursor types are
1044           an error now. * Now the window state always corresponds to the wanted
1045           cursorID, even in the case of GLUT_CURSOR_FULL_CROSSHAIR.
1046           
1047           NOTE: I am not sure where the cursor cache should really reside,
1048           currently it is simply a file-local variable.
1049
1050 2005-01-03  Sven Panne <sven.panne@aedion.de>
1051
1052         * ChangeLog, src/freeglut_gamemode.c: Fixed part of bug #926883 (Video
1053           mode matching code, memory leaks, fullscreen), i.e. issue warnings
1054           when XF86VidModeFOO fails.
1055         * ChangeLog, src/freeglut_gamemode.c: (234) Fixed part of bug #926883
1056           (Video mode matching code, memory leaks, fullscreen): Now we first try
1057           to get an exact mode match, ignoring the refresh rate if none could be
1058           found. This way the X11 part and the WinDoze behave similarly. NOTE:
1059           We still don't behave like GLUT, because it has a wider notion of
1060           "best" match. We have to refactor and extend freeglut quite a bit to
1061           do that.
1062         * ChangeLog, src/freeglut_gamemode.c: Fixed part of bug #926883 (Video
1063           mode matching code, memory leaks, fullscreen), i.e. memory leak caused
1064           by not freeing the mode lines returned by XF86VidModeGetAllModeLines
1065         * ChangeLog, src/freeglut_window.c: Improved error message a bit when no
1066           suitable visual could be found (X11 only).
1067         * configure.ac, src/freeglut_internal.h, src/freeglut_main.c: autoconf'd
1068           vfprintf
1069         * src/freeglut_joystick.c: Removed redundant #include
1070         * ChangeLog, configure.ac, src/freeglut_joystick.c, src/freeglut_main.c:
1071           autoconf'd <errno.h> handling and removed an unused '#include
1072           <sys/stat.h>'
1073         * configure.ac, src/freeglut_joystick.c, src/freeglut_main.c: autoconf'd
1074           <limits.h> and <sys/param.h> handling, removing MIN/MAX macros on the
1075           way.
1076         * src/freeglut_internal.h: Cosmetics.
1077         * configure.ac, src/freeglut_joystick.c: autoconf'd <fcntl.h> and
1078           <sys/ioctl.h> handling
1079         * src/freeglut_internal.h, src/freeglut_joystick.c, src/freeglut_main.c:
1080           Improved <sys/typed.h> / <unistd.h> handling as suggested by the
1081           autoconf docs.
1082         * configure.ac, progs/demos/Lorenz/lorenz.c, src/freeglut_internal.h,
1083           src/freeglut_main.c: Fixed <sys/time.h> / <time.h> handling as
1084           suggested by the autoconf docs.
1085         * src/freeglut_callbacks.c, src/freeglut_cursor.c,
1086           src/freeglut_display.c, src/freeglut_ext.c, src/freeglut_font.c,
1087           src/freeglut_font_data.c, src/freeglut_gamemode.c,
1088           src/freeglut_geometry.c, src/freeglut_init.c, src/freeglut_internal.h,
1089           src/freeglut_joystick.c, src/freeglut_main.c, src/freeglut_menu.c,
1090           src/freeglut_misc.c, src/freeglut_overlay.c, src/freeglut_state.c,
1091           src/freeglut_structure.c, src/freeglut_teapot.c,
1092           src/freeglut_videoresize.c, src/freeglut_window.c: Moved '#include
1093           "config.h"' to freeglut_internal.h, we will need it there soon and it
1094           makes everything a bit shorter.
1095         * ChangeLog: Resurrected my recent additions which were nuked by the
1096           previous commit, adding the latest change on the way. :-(
1097         * acconfig.h: Removed acconfig.h, it is deprecated and we don't need it.
1098         * src/freeglut_cursor.c, src/freeglut_font.c, src/freeglut_init.c,
1099           src/freeglut_structure.c: Make it compile again with "-Wall -pedantic
1100           -Werror", redoing quite a few things I've fixed already a few days
1101           ago. Have today's commits been done by copying instead of merging? :-(
1102
1103 2005-01-03  James Jones <puggles@users.sourceforge.net>
1104
1105         * src/freeglut_internal.h, src/freeglut_main.c, src/freeglut_menu.c,
1106           src/freeglut_window.c: Changes remove duplicate menu code from
1107           "freeglut_window.c" and put it into one place in "freeglut_menu.c"
1108           where it belongs. - John Fay
1109         * ChangeLog: General ChangeLog Updates
1110         * src/freeglut_callbacks.c, src/freeglut_cursor.c,
1111           src/freeglut_display.c, src/freeglut_ext.c, src/freeglut_font.c,
1112           src/freeglut_gamemode.c, src/freeglut_geometry.c, src/freeglut_init.c,
1113           src/freeglut_internal.h, src/freeglut_joystick.c, src/freeglut_main.c,
1114           src/freeglut_menu.c, src/freeglut_misc.c, src/freeglut_state.c,
1115           src/freeglut_structure.c, src/freeglut_teapot.c,
1116           src/freeglut_teapot_data.h, src/freeglut_window.c: Adding
1117           initialization checking to all GLUT interface functions and removing
1118           asserts from the rest of the code - John Fay
1119
1120 2005-01-01  Sven Panne <sven.panne@aedion.de>
1121
1122         * ChangeLog, src/Makefile.am: Added missing files from "src"
1123           subdirectory to dist.
1124         * AUTHORS: Synched with project member list on SourceForge
1125         * ChangeLog, Makefile.am, configure.ac: Modernized configure.ac a bit
1126           and added a rule to Makefile.am to update libtool. Note that all gcc
1127           compiler warnings are now on by default.
1128         * ChangeLog, include/GL/freeglut_std.h,
1129           progs/demos/CallbackMaker/CallbackMaker.c,
1130           progs/demos/Fractals_random/fractals_random.c,
1131           progs/demos/Lorenz/lorenz.c, progs/demos/One/one.c,
1132           src/freeglut_cursor.c, src/freeglut_font.c, src/freeglut_init.c,
1133           src/freeglut_teapot_data.h: Make "gcc -Wall -pedantic -Werror" happy.
1134         * ., .cvsignore: Ignore files generated by autoscan.
1135         * ChangeLog, INSTALL, configure.ac, configure.in: Renamed "configure.in"
1136           to the officially preferred "configure.ac".
1137         * stamp-h, stamp-h.in: Removed unused stamp-h* files, configure
1138           generates them (a single stamp-h1, to be exact).
1139         * ChangeLog, Makefile.am: Added eMbedded Visual Tools project/workspace
1140           files to distribution.
1141         * ., .cvsignore: Ignore distribution tar files
1142
1143 2004-12-31  Sven Panne <sven.panne@aedion.de>
1144
1145         * ChangeLog, src/freeglut_main.c: Fixed first bug of #1064195 (two
1146           things when using signals): Don't issue a warning about select when a
1147           non-blocked signal was caught. This makes sense and is more compatible
1148           with GLUT.
1149         * ChangeLog, src/freeglut_font.c: Fixed bug #1040435 (glutBitmapString()
1150           bug).
1151         * ChangeLog: Alas, the ChangeLog has not the usual ChangeLog format, so
1152           tell (X)Emacs about that fact.
1153         * ChangeLog, src/freeglut_window.c: Fixed bug #1045054 (KeyReleaseMask
1154           typo).
1155         * ChangeLog, src/freeglut_state.c: Fixed bug #1087642
1156           (glutDeviceGet(GLUT_DEVICE_KEY_REPEAT) unimplemented).
1157         * ChangeLog, src/freeglut_ext.c: Fixed bug #1079530 (glutGetProcAddress
1158           and geometric objects).
1159         * ., .cvsignore, doc, doc/.cvsignore, include, include/.cvsignore,
1160           include/GL, include/GL/.cvsignore, progs, progs/.cvsignore,
1161           progs/demos, progs/demos/.cvsignore, progs/demos/CallbackMaker,
1162           progs/demos/CallbackMaker/.cvsignore, progs/demos/Fractals,
1163           progs/demos/Fractals/.cvsignore, progs/demos/Fractals_random,
1164           progs/demos/Fractals_random/.cvsignore, progs/demos/Lorenz,
1165           progs/demos/Lorenz/.cvsignore, progs/demos/One,
1166           progs/demos/One/.cvsignore, progs/demos/shapes,
1167           progs/demos/shapes/.cvsignore, src, src/.cvsignore: Improved
1168           ignorance.
1169
1170 2004-12-17  James Jones <puggles@users.sourceforge.net>
1171
1172         * src/freeglut_cursor.c, src/freeglut_display.c,
1173           src/freeglut_internal.h, src/freeglut_menu.c, src/freeglut_misc.c,
1174           src/freeglut_window.c: Some assertion changes / removals from Dr. John
1175           Fay
1176
1177 2004-10-06  Brian Paul
1178
1179         * src/freeglut_callbacks.c, src/freeglut_internal.h,
1180           src/freeglut_joystick.c, src/freeglut_state.c: joystick init fixes
1181           (John Fay)
1182
1183 2004-10-05  Brian Paul
1184
1185         * src/freeglut_main.c: updated comments (John Fay)
1186         * src/freeglut_init.c, src/freeglut_main.c, src/freeglut_window.c:
1187           improved comments and mouse coord adjustments (John Fay)
1188         * src/freeglut_init.c: more clean-ups, fixes from John Fay
1189
1190 2004-09-23  Brian Paul
1191
1192         * src/freeglut_font.c, src/freeglut_stroke_mono_roman.c,
1193           src/freeglut_stroke_roman.c: font updates from John Fay
1194         * src/freeglut_main.c: more updates from John Fay
1195         * src/freeglut_geometry.c, src/freeglut_init.c: assorted updates from
1196           John Fay
1197
1198 2004-09-15  James Jones <puggles@users.sourceforge.net>
1199
1200         * src/freeglut_init.c: Fix to glutInit() command-line argument
1201           compaction - Patch #1027724 from takeshi2
1202
1203 2004-09-13  Brian Paul
1204
1205         * src/freeglut_callbacks.c, src/freeglut_cursor.c,
1206           src/freeglut_gamemode.c, src/freeglut_init.c, src/freeglut_internal.h,
1207           src/freeglut_joystick.c, src/freeglut_main.c, src/freeglut_state.c,
1208           src/freeglut_window.c: more updates from John Fay
1209         * src/freeglut_cursor.c, src/freeglut_gamemode.c,
1210           src/freeglut_geometry.c, src/freeglut_init.c, src/freeglut_internal.h,
1211           src/freeglut_joystick.c, src/freeglut_main.c,
1212           src/freeglut_structure.c, src/freeglut_teapot.c,
1213           src/freeglut_window.c: some function renaming, etc (John Fay)
1214
1215 2004-09-10  Brian Paul
1216
1217         * src/freeglut_callbacks.c, src/freeglut_init.c,
1218           src/freeglut_internal.h, src/freeglut_main.c: joystick updates from
1219           John Fay
1220         * src/freeglut_cursor.c, src/freeglut_font_data.c,
1221           src/freeglut_gamemode.c, src/freeglut_geometry.c, src/freeglut_init.c,
1222           src/freeglut_internal.h, src/freeglut_joystick.c, src/freeglut_main.c,
1223           src/freeglut_menu.c, src/freeglut_misc.c, src/freeglut_state.c,
1224           src/freeglut_stroke_mono_roman.c, src/freeglut_stroke_roman.c,
1225           src/freeglut_structure.c, src/freeglut_teapot.c,
1226           src/freeglut_window.c: updated comments from John Fay
1227
1228 2004-08-11  James Jones <puggles@users.sourceforge.net>
1229
1230         * src/freeglut_gamemode.c, src/freeglut_internal.h, src/freeglut_main.c:
1231           Fix a game mode crashing bug, conditional compilation for Windows, and
1232           comment out some diagnostic prints (John Fay)
1233
1234 2004-08-05  James Jones <puggles@users.sourceforge.net>
1235
1236         * src/freeglut_window.c: Implements Richard Rauch's request that the
1237           warning about indirect rendering contexts be suppressed for his BSD
1238           operating systems.
1239         * src/freeglut_teapot_data.h: Someone used C++ style comments in a C
1240           file... tisk tisk...
1241         * src/freeglut_font.c: Bugfix for "glutBitmapString" so that it now
1242           handles end-of-line characters properly (Richard Rauch)
1243         * README: Incremental update ... (John Fay)
1244
1245 2004-06-29  Brian Paul
1246
1247         * src/freeglut_structure.c: give menu windows the title 'freeglut menu'
1248           (helps Chromium)
1249         * src/freeglut_window.c: move glXMakeCurrent() to after the point where
1250           the window's title is set (helps Chromium)
1251
1252 2004-05-13  James Jones <puggles@users.sourceforge.net>
1253
1254         * freeglut.dsp, freeglut_static.dsp: Add one more header file to MSVC
1255           files
1256
1257 2004-05-12  James Jones <puggles@users.sourceforge.net>
1258
1259         * include/GL/freeglut_ext.h, include/GL/freeglut_std.h: John Fay:
1260           Direct/indirect rendering context change, fix a bug that somebody
1261           reported (about needing "GLUT_XLIB_IMPLEMENTATION" defined) and remove
1262           a false deprecation of a function.
1263         * src/freeglut_main.c: John Fay: A bug fix re: behavior of the code when
1264           the user clicks the "x" to close a window, and commentary to a message
1265           type with fixes for a Windows event processing bug.
1266         * src/freeglut_init.c, src/freeglut_internal.h, src/freeglut_state.c,
1267           src/freeglut_window.c: John Fay: Implement the modified logic of the
1268           direct/indirect rendering context.
1269         * src/freeglut_font.c, src/freeglut_font_data.c: John Fay: Implement the
1270           upper end of the bitmapped fonts (beyond ASCII code 127). The fonts
1271           are very close to the GLUT fonts.
1272         * src/freeglut_teapot.c, src/freeglut_teapot_data.h: John Fay: These
1273           files implement the teapot for WINCE.
1274         * src/freeglut_internal.h: John Fay: Remove some obsolete defined
1275           symbols.
1276         * freeglut.dsp, freeglut_static.dsp: John Fay: Add
1277           "freeglut_glutfont_definitions.c" to the build and tell it to look in
1278           the "include" directory for the <GL/freeglut.h> file.
1279
1280 2004-03-28  Steve Baker <steve@sjbaker.org>
1281
1282         * progs/demos/shapes/shapes.c: Removed unnecessary initialisation.
1283         * progs/demos/shapes/shapes.c: Added a cullface test.
1284
1285 2004-03-22  drgoldie
1286
1287         * freeglut_evc4.vcp, src/freeglut_gx.cpp, src/freeglut_init.c,
1288           src/freeglut_main.c: removed .cpp file (using LoadLibrary() instead)
1289           removed modified gx.h file cleaned up all // and tabs
1290
1291 2004-03-17  nigels
1292
1293         * src/freeglut_main.c: Prevent exceeding array bounds in X11 key-repeat
1294           detection
1295
1296 2004-03-16  drgoldie
1297
1298         * freeglut_evc4.vcp, src/freeglut_ext.c, src/freeglut_gx.cpp,
1299           src/freeglut_init.c, src/freeglut_main.c, src/freeglut_misc.c,
1300           src/freeglut_state.c, src/freeglut_window.c: replaced all tabs with 4
1301           spaces replaced all // with /* */ block fixed freeglut_gx.cpp file
1302           with #if TARGET_HOST_WINCE
1303
1304 2004-03-16  nigels
1305
1306         * src/freeglut_init.c, src/freeglut_main.c, src/freeglut_state.c:
1307           Whitespace conversion - tabs to 4 spaces
1308         * src/freeglut_window.c: Revert X11 fgCloseWindow to 1.38 pre-offscreen
1309           implementation.
1310
1311 2004-03-15  drgoldie
1312
1313         * freeglut_evc4.vcp, src/freeglut_gx.cpp, src/freeglut_main.c: fixed
1314           mouse position and keyboard mapping. added c-wrapper cpp file for
1315           GAPI.
1316         * freeglut_evc4.vcp, freeglut_evc4.vcw, include/GL/freeglut_std.h,
1317           src/freeglut_cursor.c, src/freeglut_display.c, src/freeglut_ext.c,
1318           src/freeglut_gamemode.c, src/freeglut_init.c, src/freeglut_internal.h,
1319           src/freeglut_main.c, src/freeglut_menu.c, src/freeglut_misc.c,
1320           src/freeglut_state.c, src/freeglut_window.c: added support for
1321           WindowsCE (building on top of klimt)
1322
1323 2004-03-15  nigels
1324
1325         * src/freeglut_main.c: Repeat-key handling for Win32 Utilise both
1326           FreeGLUT state and per-window filtering modes
1327
1328 2004-03-15  rkrolib
1329
1330         * ChangeLog: Forgot to update the ChangeLog for the benefit of those who
1331           do not have CVS or Web access.
1332         * configure.in, include/GL/freeglut_ext.h, src/freeglut_internal.h,
1333           src/freeglut_window.c: Completed removal of all support for the
1334           offscreen rendering.
1335           
1336           If you wish to do offscreen supportin a portable manner, you will no
1337           longer be able to do so with current versions of freeglut.
1338         * progs/demos/Makefile.am: Removed Makefile support for the offscreen
1339           demo.
1340         * progs/demos/One/one.c, progs/demos/offscreen: Removed offscreen demo
1341           program.
1342
1343 2004-03-15  nigels
1344
1345         * src/Makefile.am: Provide local include path to automake for
1346           GL/freeglut.h etc
1347
1348 2004-03-14  nigels
1349
1350         * src/freeglut_window.c: Code formatting tweak
1351         * src/freeglut_init.c, src/freeglut_internal.h, src/freeglut_main.c,
1352           src/freeglut_misc.c, src/freeglut_state.c, src/freeglut_structure.c:
1353           Resolution of X11 key-repeat handling
1354           
1355           glutSetKeyRepeat is global to all FreeGLUT windows in the application
1356           glutIgnoreKeyRepeat is a per-window over-ride
1357           
1358           To avoid nasty global X11 state interaction, or GLUT-style event queue
1359           filtering - the approach in FreeGLUT is to use the current key state
1360           XQueryKeymap to detect and ignore KeyRelease/KeyPress pairs that are
1361           auto-generated.
1362           
1363           See also:
1364           http://pyopengl.sourceforge.net/documentation/manual/glutSetKeyRepeat.3GLUT.xml
1365           http://pyopengl.sourceforge.net/documentation/manual/glutIgnoreKeyRepeat.3GLUT.xml
1366         * src/freeglut_callbacks.c, src/freeglut_cursor.c, src/freeglut_ext.c,
1367           src/freeglut_font.c, src/freeglut_font_data.c,
1368           src/freeglut_gamemode.c, src/freeglut_geometry.c,
1369           src/freeglut_glutfont_definitions.c, src/freeglut_init.c,
1370           src/freeglut_internal.h, src/freeglut_joystick.c, src/freeglut_main.c,
1371           src/freeglut_state.c, src/freeglut_structure.c, src/freeglut_window.c:
1372           Stripped out tabs and end-of-line whitespace Differences are in
1373           whitespace only
1374
1375 2004-03-10  nigels
1376
1377         * src/freeglut_window.c: Resolve [ 853044 ] FreeGLUT menus on Win32 in
1378           task bar and ALT-TAB list CreateWindowEx(WS_EX_TOOLWINDOW,...)
1379           extended style suppresses the popup menu window from the taskbar or
1380           ALT-TAB list
1381
1382 2004-03-08  nigels
1383
1384         * src/freeglut_init.c: ignoreKeyRepeat mode in FreeGLUT is TRUE by
1385           default For compatibility with GLUT, the mode should be FALSE by
1386           default This issues was probably undetected until now because
1387           ignoreKeyRepeat didn't yet work.
1388         * src/freeglut_main.c: Resolved bug #869765 glutIgnoreKeyRepeat() Fix
1389           (Win32) glutIgnoreKeyRepeat now behaves correctly on Win32
1390         * src/freeglut_internal.h: C++ style comment converted to C style
1391           comment
1392         * src/freeglut_callbacks.c, src/freeglut_cursor.c,
1393           src/freeglut_display.c, src/freeglut_ext.c, src/freeglut_font.c,
1394           src/freeglut_font_data.c, src/freeglut_gamemode.c,
1395           src/freeglut_geometry.c, src/freeglut_init.c, src/freeglut_joystick.c,
1396           src/freeglut_main.c, src/freeglut_menu.c, src/freeglut_misc.c,
1397           src/freeglut_overlay.c, src/freeglut_state.c,
1398           src/freeglut_structure.c, src/freeglut_teapot.c,
1399           src/freeglut_videoresize.c, src/freeglut_window.c: Include freeglut
1400           header via <GL/freeglut.h> rather than "../include/GL/freeglut.h" This
1401           allows some additional flexibility with file layout. It should be the
1402           responsibility of the build environment, rather than at source level.
1403           This change tested on MSVC 6, cygwin and mingw32 gcc and Linux gcc.
1404
1405 2004-03-03  nigels
1406
1407         * src/freeglut_joystick.c: According to John F. Fay: The variable
1408           "num_axes" should be "joy->num_axes".
1409
1410 2004-02-20  rkrolib
1411
1412         * src/freeglut_gamemode.c: Removed nonstandard #warning constructs.
1413           Converted to XXX comments. (These are warnings about gamemode features
1414           not working the same on some systems as on others. The semantics of
1415           gamemode are dubious, since it was never formally documented, and has
1416           for a long time worked in different ways on different systems, so it
1417           is arguable that there is nothing really wrong with systems that don't
1418           support resolution-changes.)
1419         * src/freeglut_callbacks.c: Fixed the bug where glutDisplayFunc() was
1420           effectively invoking glutPostRedsiplay(). This is wrong on the face of
1421           it, and may be at root for some of the annoying "timing" issues we've
1422           had with redisplay events being called inappropriately.
1423
1424 2004-02-19  rkrolib
1425
1426         * progs/demos/offscreen/Makefile.am: I had rubbed the
1427           offscreen/Makefile.am off from the shapes demo. I forgot to remove a
1428           couple of references to the shapes.c and shapes.dsp (.dsw?) files.
1429         * configure.in, include/GL/freeglut_ext.h, progs/demos/Makefile.am,
1430           progs/demos/offscreen, progs/demos/offscreen/Makefile.am,
1431           progs/demos/offscreen/offscreen.c: Added "offscreen" demo, a very
1432           simple program that produces an onscreen window and, upon command,
1433           renders a similar offscreen display and writes the result to disk.
1434           
1435           Also, modified the build structure for UNIX_X11 to autobuild the demo.
1436           (Not done for WIN32 at this time.)
1437           
1438           Also, forgot to previously commit the updated freeglut_ext.h include.
1439           Eeep.
1440
1441 2004-02-18  rkrolib
1442
1443         * src/freeglut_window.c: Minor comment adjustments.
1444
1445 2004-02-18  nigels
1446
1447         * src/freeglut_geometry.c: Refinements to comments
1448
1449 2004-02-14  rkrolib
1450
1451         * src/freeglut_joystick.c: Normalized the style of the new joystick a
1452           bit.
1453         * src/freeglut_main.c: For some reason, the X "expose" event handler was
1454           *directly* calling the display handler in the client. (Okay, it was
1455           calling a function that operates on the window handle.)
1456           
1457           If you have any complexity to the display code, this can be painful to
1458           watch. I can't think of a good reason to do the display immediately,
1459           so I fixed the code to do a glutPostRedisplay().
1460         * src/freeglut_joystick.c: A commit on behalf of John (in turn, and in
1461           part, also on behalf of Thierry).
1462           
1463           * Renamed some of the old PLIB functions to have glut* prefixes. (I
1464           guess that there is some thought about exporting them to the API.)
1465           
1466           * Changes from Thierry for FreeBSD support, and/or results of testing?
1467           
1468           * I re-merged an XXX comment re. NetBSD/amd64 and propogated a comment
1469           on a duplicated #define for FreeBSD. We need the GNU autoconfig stuff
1470           to be updated by someone who groks it, now.
1471
1472 2004-02-09  rkrolib
1473
1474         * src/freeglut_init.c: Commit of John's tidying-up of a comment, closing
1475           out an XXX comment that I wrote. Thanks, John.
1476
1477 2004-02-07  rkrolib
1478
1479         * src/freeglut_window.c: ...AND a tab snuck into my changes for
1480           GLUT_OFFSCREEN support. Mea culpa.
1481         * src/freeglut_joystick.c: Removed a ^M that snuck into the #pragma for
1482           the new joystick code.
1483         * src/freeglut_window.c: Ooops. We don't want people to be able to
1484           create a subwindow of an offscreen window. (^& This is no longer
1485           permitted.
1486           
1487           (Actually, it would be nice if it would work, but I don't think that
1488           you can subwindow a pixmap in UNIX_X11, and assume that subwindowing
1489           offscreen doesn't work on WIN32, either.)
1490         * ChangeLog: Added entries for the joystick updates and the offscreen
1491           experimental support.
1492         * src/freeglut_joystick.c: Changed a couple of XXX comments. Added a new
1493           one. These all the nest of #ifs in the BSD section of the new joystick
1494           code.
1495         * progs/demos/CallbackMaker/CallbackMaker.c: "Heavy editing" by John to
1496           his CallbackMaker demo.
1497         * src/freeglut_joystick.c: John added a #pragma to the joystick code for
1498           WIN32 users.
1499         * src/freeglut_internal.h, src/freeglut_window.c: Adds GLUT_OFFSCREEN as
1500           a display mode option. This includes:
1501           
1502           * Recognizing the mode when you call glutCreateWindow(). (Offscreen
1503           looks and acts like a top-level window in many ways.)
1504           
1505           * During the life of the offscreen "window", various window-management
1506           functions are modified to respect offscreen status.
1507           
1508           (Excepting reshaping windows, there is not much useful interpretation
1509           for management of offscreen areas. Reshaping is possibly more work than
1510           it's worth to support, and GLUT specs allow us to ignore the request.)
1511           
1512           * Cleanup for "offscreen" windows is a little different than for
1513           regular windows.
1514           
1515           Windows still don't start up quite ideally. Offscreen windows should
1516           probably get a reshape event, but not a display.
1517
1518 2004-02-05  rkrolib
1519
1520         * src/freeglut_init.c, src/freeglut_joystick.c: Big import of updated
1521           joystick code from PLIB, with permission from Steve Baker. Most of the
1522           adaptation done by John, with a little bit of testing and changes by
1523           Thierry Thomas and myself. Seems to compile on:
1524           
1525           WIN32 Red Hat LINUX FreeBSD NetBSD/amd64
1526
1527 2004-02-01  rkrolib
1528
1529         * src/freeglut_main.c: Close a bug whereby events can be delayed
1530           arbitrarily long if they get caught between the socket and the
1531           client-side queue on X, sometime after glutMainLoopEvent()'s loop
1532           quits and before the sleep code is invoked.
1533
1534 2004-01-16  rkrolib
1535
1536         * src/freeglut_main.c: Amended a comment on fgCheckJoystickCallback().
1537         * src/freeglut_main.c: Minor style normalizations to minimize the diffs
1538           between *now* and from before John's changes. No functional changes:
1539           
1540           * Removed some hard TABs introduced. * Removed some
1541           spaces-at-end-of-line introduced. * A couple of function calls were
1542           touched up.
1543           
1544           I did this separately only because I don't like messing with other
1545           people's commits. (I don't like feeling like the style police, either,
1546           but when I mess with the commit, there's no room for reverting my
1547           interference if it is deemed undesirable...)
1548         * src/freeglut_main.c: Some changes from John.
1549           
1550           The main attraction seems to be correcting a bug with the action-on-
1551           window-close.
1552
1553 2004-01-05  nigels
1554
1555         * src/freeglut_main.c, src/freeglut_window.c: Win32 glutIconifyWindow()
1556           patch contributed by John F. Fay Restrict resize callbacks to visible
1557           windows When iconified via glutIconifyWindow(), don't pass (0,0) to
1558           resize callback Note that minimising the window via the menu or
1559           minimise button is not yet resolved.
1560
1561 2003-12-30  rkrolib
1562
1563         * src/freeglut_main.c, src/freeglut_menu.c, src/freeglut_structure.c:
1564           Split a few overlong lines.
1565           
1566           Adjusted some spacing in a few spots to be more consistent with
1567           freeglut style. Including one unindented if() body.
1568           
1569           Eliminated a dead variable.
1570         * src/freeglut_joystick.c: Changed several #ifdef's to proper #if's.
1571           Eeek. Oook.
1572         * src/freeglut_main.c: Hm... I thought that I committed this last night.
1573           What's up?
1574           
1575           This is Nigel's modified fgSleepForEvents(), essentially. Take 2.
1576
1577 2003-12-30  nigels
1578
1579         * include/GL/freeglut_std.h: Three supported win32 compilation
1580           environments: MSVC, Cygwin and MingW32 #pragma is specific to MS
1581           compiler
1582         * src/freeglut_internal.h: Explicitly cast function pointer to (void *)
1583           in SET_WCB since all callbacks stored as void pointers suppress gcc
1584           -Wall -pendantic "noise"
1585         * src/freeglut_structure.c: Typesafe handling of temporary window
1586           destroy callback Move assignment out of while test, scope temporary
1587           inside loop Be explicit about assignment/comparison in if test for gcc
1588           peace of mind suppress gcc -Wall -pendantic "noise"
1589         * src/freeglut_internal.h: Three supported win32 compilation
1590           environments: MSVC, Cygwin and MingW32 The windows mmsystem header
1591           need only be included internally to freeglut strdup vs _strdup is
1592           specific to the MS compiler
1593         * src/freeglut_font.c: strlen expects (char *), rather than (unsigned
1594           char *) suppress gcc -Wall -pendantic "noise"
1595         * src/freeglut_cursor.c: Replace assignment of array to struct with
1596           field-by-field assignment suppress gcc -Wall -pendantic "noise"
1597         * src/freeglut_menu.c: glutBitmapString and glutBitmapLength expect
1598           (unsigned char *) rather than (char *) suppress gcc in -Wall
1599           -pendantic "noise"
1600         * src/freeglut_joystick.c: Replace #ifdef WIN32 with #ifdef
1601           TARGET_HOST_WIN32, as per FreeGLUT convention
1602         * src/freeglut_init.c: fgState.FPSInterval is unsigned int (GLuint),
1603           environment variable GLUT_FPS can be negative
1604         * src/freeglut_window.c: OpenGL context is not made current on Win32
1605           until fgSetWindow is called. This resolves severe problems observed in
1606           GLUI applications.
1607         * src/freeglut_window.c: #pragma message is only understood my MS
1608           compiler #if defined(_MSC_VER) .. #endif
1609         * src/freeglut_state.c: Resolve bug 864978 - GLUT_OWNS_JOYSTICK
1610           unhandled
1611         * src/freeglut_main.c: Tidy nested if/else to suppress gcc -Wall
1612           -pedantic noise gcc suggests explicit braces to avoid ambiguous `else'
1613
1614 2003-12-25  rkrolib
1615
1616         * progs/demos/CallbackMaker/CallbackMaker.c,
1617           progs/demos/Fractals/fractals.c,
1618           progs/demos/Fractals_random/fractals_random.c: Configuring with
1619           "--enable-warnings" broke three demos: * CallbackMaker defined, but
1620           did not use, the Joystick() function (a callback for the freeglut
1621           joystick interface). I uncommented the callback-registration. I assume
1622           that it was commented out because it was spammy. (freeglut does
1623           joysticks by polling with a timer.) Perhaps a longer interval than
1624           10ms would be advisable?
1625           
1626           * fractals.c used strcpy() without getting the prototype. Added
1627           #include <string.h> at the top.
1628           
1629           * fractals_random.c had the same problem as fractals.c.
1630
1631 2003-12-23  rkrolib
1632
1633         * src/freeglut_main.c: Moved the window-resize code so that it happens
1634           whenever there is a pending resize for the window, whether or not the
1635           window is visible or in need of a redisplay. The resize is now done
1636           before the visibility and need-to-redisplay checks.
1637
1638 2003-12-22  rkrolib
1639
1640         * src/freeglut_structure.c: Got rid of those int/ptr warnings on AMD64.
1641           (The code was casting an {int} to a pointer, and later retrieving the
1642           int by another cast. It should be safe provided that pointers are at
1643           least as big as {int}, but GCC was giving warnings on my system,
1644           so...fixed.)
1645         * src/freeglut_main.c, src/freeglut_structure.c: Several
1646           test-on-assignment cases have been converted to stop GCC from
1647           complaining about if( a = get_a_value_for_a( ) ) type code.
1648
1649 2003-12-19  rkrolib
1650
1651         * src/freeglut_internal.h: Ooops, left some cruft in a comment in the
1652           header when committing the last patch. Cleaned up.
1653         * src/freeglut_callbacks.c, src/freeglut_internal.h,
1654           src/freeglut_structure.c: Wrote SET_WCB() to set a window callback.
1655           This lets us out of using the FETCH_WCB() as an lvalue (which it
1656           shouldn't, since the value of the FETCH is cast to the correct
1657           function-pointer type).
1658
1659 2003-12-15  James Jones <puggles@users.sourceforge.net>
1660
1661         * progs/demos/Fractals/Fractals.dsp: Change the destination directory of
1662           the debug version to "Debug" (John Fay)
1663
1664 2003-12-13  James Jones <puggles@users.sourceforge.net>
1665
1666         * ChangeLog: Release 2.2.0
1667
1668 2003-12-11  rkrolib
1669
1670         * src/freeglut_main.c, src/freeglut_window.c: Stripped out TABs that got
1671           reintroduced.
1672           
1673           There were no changes other than replacing about 10 to 12 TABs with a
1674           visually-suitable number of spaces, so this can probably be blindly
1675           treated as equivalent to the previous versions of the two affected
1676           files.
1677
1678 2003-12-11  Christopher John Purnell
1679
1680         * src/freeglut_internal.h, src/freeglut_structure.c: The deferred window
1681           destruction code was destroying the windows in reverse order. This
1682           cased a crash when the call to glutDestroyWindow() for a sub windows
1683           was immediately followed by a call to glutDestroyWindow() for it's
1684           parent. fgCloseWindows() would call fgDestroyWindow() for the parent
1685           first fgDestroyWindws() would recurse over the children and then
1686           fgCloseWindows() would call fgDestroyWindow() again for the child.
1687           
1688           I've replaced the single linked list with one of our two way link list
1689           structures. I've also moved it into fgStructure because that seemed
1690           the consistent thing to do.
1691           
1692           I said the the deferred windows destruction causes more problems then
1693           it solves.
1694
1695 2003-12-11  James Jones <puggles@users.sourceforge.net>
1696
1697         * progs/demos/CallbackMaker/Makefile.am: Include project file in the
1698           distribution.
1699         * ChangeLog: Updates for 2.2.0 RC2
1700         * progs/demos/demos.dsw: Add shapes to the Visual C workspace.
1701         * progs/demos/shapes/Makefile.am: Package the visual C project file with
1702           the distribution
1703         * configure.in: Set the version to 2.2.0
1704         * src/freeglut_gamemode.c, src/freeglut_main.c, src/freeglut_window.c:
1705           Nigel Stewart's Win32 window-sizing fix for game mode
1706         * progs/demos/One/one.c: Disable/enable lighting in the "one.c" demo
1707           (John Fay)
1708         * progs/demos/CallbackMaker/CallbackMaker.dsp: Add some essentials to
1709           get this program to compile (Nigel)
1710         * src/freeglut_internal.h: Update to reflect 2.2.0 release
1711         * ChangeLog: Note the release of 2.2.0 RC1
1712
1713 2003-12-11  rkrolib
1714
1715         * src/freeglut_structure.c, src/freeglut_window.c: John correctly
1716           observed that the initialization {OldHeight} and {OldWidth} in the
1717           window structure should be done for both windows and sub-windows, and
1718           the easiest way to do this is in the
1719           freeglut_structure.c:fgCreateWindow() code. So, transplant one line.
1720
1721 2003-12-10  rkrolib
1722
1723         * src/freeglut_main.c: Commit of John's change to stop an infinite-loop
1724           condition when the only windows left are freeglut menu windows, and
1725           correctly calls exit() if we drop out of the main loop without having
1726           requested any freeglut extensions to glutMainLoop() handling.
1727
1728 2003-12-07  rkrolib
1729
1730         * progs/demos/shapes/shapes.c, progs/demos/shapes/shapes.dsp: Two from
1731           Nigel:
1732           
1733           * Updated shapes.c. I think that it's just reformatting and the
1734           addition of some comments.
1735           
1736           * Added shapes.dsp, a Microsoft Visual C++ Developer Studio Project
1737           file for building shapes on WIN32 with MSVC++.
1738
1739 2003-12-03  Christopher John Purnell
1740
1741         * configure.in: Added an option to enable gcc compiler warnings. I've
1742           explicitly excluded the one about adding parentheses.
1743
1744 2003-12-03  rkrolib
1745
1746         * src/freeglut_main.c: Touched up several comments, pointing up things
1747           that may be worth reflect- ing upon in the future.
1748         * src/freeglut_internal.h, src/freeglut_main.c, src/freeglut_window.c:
1749           Hrm. I misunderstood the purpose of {window->State.Width} and
1750           {...Height}. Those are *not* records of the old values, but rather of
1751           the *desired* *new* values, hence it was inappropriate to use them in
1752           ConfigureNotify X11 event handling. Doing so introduced some new
1753           problems.
1754           
1755           So, I created OldHeight and OldWidth in the window State structure,
1756           and *those* do what I require.
1757           
1758           I also stripped out the obsolete comment about getting extra/bogus
1759           reshape events. (Though I maintain that an application should be
1760           robust against them, freeglut should no longer generate them if the
1761           window has not changed size since last reported.)
1762
1763 2003-12-02  rkrolib
1764
1765         * src/freeglut_main.c: Changed Create/ConfigureNotify handling in
1766           UNIX_X11:
1767           
1768           * Just need to call GETWINDOW() once. Ooops. Heh. * Update
1769           {window->State} with the new size of the window. * If the window-size
1770           has NOT changed, then do NOT call the Reshape event.
1771         * src/freeglut_main.c: Added an "XXX" earmark for post-release
1772           contemplation. (The point is definitely in need of consideration, I
1773           believe, but is not immediately a major bug, so I'd rather not mess
1774           with it at the risk of postponing a release "soon".)
1775         * src/freeglut_main.c: Ensure that the time-out for sleeping is never
1776           negative.
1777         * src/freeglut_main.c: Fixed a bug for UNIX_X11 where window reshape
1778           events were causing freeglut to mark the window as *needing* a reshape
1779           (which during general display callback handling would result in
1780           effectively a glutReshapeWindow()).
1781           
1782           The code is now system-dependent. It should be abstracted to a
1783           function, but is presently copied in two places. Sorry.
1784           
1785           Also, inverted the order of the associated if()/else check (in both
1786           WIN32 and UNIX_X11 branches) since the former "else" part was a
1787           one-line callback invocation.
1788           
1789           This fixes two seemingly unrelated bugs that I was seeing in UNIX_X11.
1790
1791 2003-12-01  Christopher John Purnell
1792
1793         * src/freeglut_internal.h: Added missing prototype for new list
1794           function.
1795
1796 2003-11-28  Christopher John Purnell
1797
1798         * src/freeglut_init.c, src/freeglut_internal.h, src/freeglut_main.c,
1799           src/freeglut_structure.c: Timer optimizations. Made the list of
1800           pendinig timers ordered. Added a free list of used timer structures.
1801         * src/freeglut_callbacks.c: Timer optimizations.
1802         * src/freeglut_window.c: Fixed windows compilation problem with last
1803           update.
1804
1805 2003-11-27  Christopher John Purnell
1806
1807         * src/freeglut_gamemode.c, src/freeglut_internal.h, src/freeglut_main.c,
1808           src/freeglut_structure.c, src/freeglut_window.c: Window close fix. The
1809           default behaiour should now be the same as with glut.
1810
1811 2003-11-26  rkrolib
1812
1813         * src/freeglut_init.c: Added change from Nigel to have resize events
1814           cause redraw events in WIN32. Also slightly reshuffled comments to
1815           deal with line-wrap issues.
1816
1817 2003-11-25  rkrolib
1818
1819         * src/freeglut_main.c: John reported, and fixed, a problem that recent
1820           changes caused for the Lorenz demo (seems to be WIN32 specific).
1821         * src/freeglut_structure.c: Update from John: Removed the freeglut hack
1822           of decrementing the highst-window-ID marker when the highest window is
1823           deleted. (This was a half-way measure for an idea that was decided to
1824           be dubious in the first place.)
1825         * configure.in, progs/demos/Makefile.am, progs/demos/shapes,
1826           progs/demos/shapes/Makefile.am, progs/demos/shapes/shapes.c: Added a
1827           new demo (from Nigel) showing some of the basic GLUT geometry shapes.
1828           "shapes" is the name of the demo.
1829         * include/GL/freeglut_ext.h, src/freeglut_geometry.c: Commit of work
1830           from Nigel:
1831           
1832           Massive rework of the geometric primitive code. Includes a new
1833           primitive (cylinder; solid and wireframe) and corresponding update to
1834           freeglut_ext.h for the prototype.
1835         * src/freeglut_internal.h, src/freeglut_main.c,
1836           src/freeglut_structure.c: More work from John (sorry for
1837           procrastinating):
1838           
1839           * We forgot to bump our version number in freeglut_internal.h It is
1840           now at 2.0.2 (actually, I think that 2.1.0 might be a better choice),
1841           which is presumably going to be our next formal release. 2.0.1 is
1842           incorrectly identified as 2.0.0 in the header.
1843           
1844           * A typo in a comment has been corrected ("than"/"that").
1845           
1846           * Numerous "manual" checks for callbacks are omitted now, since
1847           INVOKE_WCB() does this for us. These were holdovers from the
1848           pre-INVOKE_WCB() days. There may be some very subtle changes in
1849           freeglut behavior, since freeglut used to test the callbacks a little
1850           earlier in some cases and may have skipped some minor things (like
1851           changes to the current window) in some special cases, otherwise. It is
1852           not believed that any documented behavior is broken, and it is
1853           unlikely---not to say impossible---that any extant applications will
1854           detect the change. It is even possible that there is no external
1855           behavioral change in freeglut.
1856           
1857           This also significantly simplifies some sections of code that used to
1858           have conditional execution. "Unconditional code is simpler code" as
1859           one of the comments used to say.
1860           
1861           * Lots of XXX commentary is now removed. Some of it was obsoleted by
1862           other changes, some by changes from John.
1863         * src/freeglut_internal.h, src/freeglut_main.c,
1864           src/freeglut_structure.c: Change from John (I removed a couple of
1865           spaces from a couple of lines in his freeglut_internal.h file where
1866           they were wrapping in EMACS; otherwise, the files are exactly as he
1867           sent them to me).
1868           
1869           The change unifies the WIN32 and UNIX_X11 code by defining our own
1870           window-handle-type in freeglut_internal.h. This let John rip out some
1871           #if garbage in several places. The result is clearer code.
1872           
1873           Thanks, John!
1874
1875 2003-11-21  rkrolib
1876
1877         * src/freeglut_font.c, src/freeglut_geometry.c,
1878           src/freeglut_glutfont_definitions.c, src/freeglut_init.c,
1879           src/freeglut_internal.h, src/freeglut_main.c, src/freeglut_menu.c,
1880           src/freeglut_misc.c, src/freeglut_state.c, src/freeglut_structure.c,
1881           src/freeglut_window.c: Numerous style normalizations from John:
1882           
1883           * Convert "return( value );" to "return value;" * Normalize spacing
1884           around semicolons. * Remove extraneous parens. * Split multi-statement
1885           lines into multiple lines. (Mostly things of the form: "if( condition
1886           ) return;".)
1887         * src/freeglut_internal.h, src/freeglut_main.c, src/freeglut_window.c:
1888           All changes are from John, except for: (a) I re-inserted the meat of a
1889           comment that I still feel is relavent. (b) I fixed a compile-time
1890           error in the UNIX_X11 code where a variable is declared after
1891           executable code in a block without creating a new sub-block for the
1892           declaration.
1893           
1894           Changes from John include: (a) Style revision. (b) Changes to postpone
1895           the handling of window resizes.
1896           
1897           Lots of lines were changed, but I think that thos two cover the ground
1898           that he hit. See the diffs for details.
1899
1900 2003-11-18  Christopher John Purnell
1901
1902         * src/freeglut_cursor.c, src/freeglut_ext.c, src/freeglut_geometry.c,
1903           src/freeglut_init.c, src/freeglut_internal.h, src/freeglut_main.c,
1904           src/freeglut_menu.c, src/freeglut_state.c, src/freeglut_structure.c:
1905           Lots of stuff that John F. Fay pointed out. Plus some changes to
1906           remove gcc warnings.
1907
1908 2003-11-17  Christopher John Purnell
1909
1910         * src/freeglut_init.c, src/freeglut_internal.h, src/freeglut_main.c,
1911           src/freeglut_state.c, src/freeglut_structure.c: Fix spelling mistake
1912           in a variable name. Added a comment for John Fay. Added the copyright
1913           notice for XParseGeometry source.
1914
1915 2003-11-16  Christopher John Purnell
1916
1917         * src/freeglut_init.c, src/freeglut_internal.h, src/freeglut_main.c,
1918           src/freeglut_state.c, src/freeglut_structure.c: Made Modifers variable
1919           global as per glut classic.
1920         * src/freeglut_init.c: Removed old unused glutInitDisplayString code.
1921           Reformated new glutInitDisplayString and XParseGeometry code.
1922         * src/freeglut_init.c: Use XParseGeometry for better geometry parsing.
1923           Moved geometry parsing to after fgInitialize() so we can use the
1924           screen size to correctly calculate negative positions in the geometry
1925           string. Copied the code for XParseGeometry from the X11 sources for
1926           use in the Win32 version. freeglut now passes test1 of the glut test
1927           suite.
1928
1929 2003-11-15  Christopher John Purnell
1930
1931         * src/freeglut_gamemode.c, src/freeglut_init.c, src/freeglut_internal.h,
1932           src/freeglut_main.c, src/freeglut_structure.c, src/freeglut_window.c:
1933           Removed the state variable BuildingAMenu. Instead pass a new parameter
1934           isMenu to fgCreateWindow(). Elsewhere use window->IsMenu.
1935         * src/freeglut_init.c: freeglut_assert_ready is going to have to go at
1936           some point. But for now I've moved setting fgState.Initalized to
1937           GL_FALSE.
1938         * src/freeglut_callbacks.c, src/freeglut_display.c,
1939           src/freeglut_gamemode.c, src/freeglut_init.c, src/freeglut_internal.h,
1940           src/freeglut_joystick.c, src/freeglut_main.c, src/freeglut_menu.c,
1941           src/freeglut_misc.c, src/freeglut_state.c, src/freeglut_structure.c,
1942           src/freeglut_window.c: Replace TRUE with GL_TRUE and FALSE with
1943           GL_FALSE where the type is GLboolean.
1944
1945 2003-11-15  rkrolib
1946
1947         * src/freeglut_main.c, src/freeglut_menu.c: Normalized the spacing
1948           around symbols, for the most part. Ho-hum.
1949
1950 2003-11-15  Christopher John Purnell
1951
1952         * src/freeglut_main.c: Added a call to fgDeinitialize() before the call
1953           to exit() in fgError().
1954
1955 2003-11-15  rkrolib
1956
1957         * src/freeglut_joystick.c: Style normalizations to the joystick code.
1958
1959 2003-11-15  Christopher John Purnell
1960
1961         * src/freeglut_init.c, src/freeglut_internal.h, src/freeglut_main.c,
1962           src/freeglut_state.c, src/freeglut_structure.c, src/freeglut_window.c:
1963           Added a new state variable "Initalized". Replaced referenced to
1964           Time.Set with this new variable where appropriate. fgElapsedTime() now
1965           set the start time if Time.Set is false. Moved
1966           glutGet(GLUT_ELAPSED_TIME) handling to before the assert.
1967
1968 2003-11-14  rkrolib
1969
1970         * src/freeglut_internal.h: Normalized the internal header's style a bit.
1971         * src/freeglut_init.c: Plowed one more file this morning. Still just
1972           trivial formatting issues.
1973           
1974           And I left alone the "INIT DISPLAY STRING PARSING" section, since it
1975           still appears to be in flux.
1976         * src/freeglut_font.c, src/freeglut_gamemode.c: Yet more trivial style
1977           normalizations.
1978           
1979           Sorry, but that's all that I'm up to at the moment. On the plus,
1980           excepting the font_data file (which I've been skipping), up through
1981           this file, I think that the code style is pretty close to uniform.
1982         * src/freeglut_font.c: Minor style corrections.
1983         * src/freeglut_display.c: Minor spacing quibble.
1984         * src/freeglut_cursor.c: Added a brief explanatory note to the X code
1985           for GLUT_CURSOR_NONE.
1986           
1987           Corrected the indentation of a block of code.
1988         * src/freeglut_window.c: Noted one of a few cases where we do something
1989           immediately that could more efficiently be postponed, quite
1990           easily---and which GLUT promises *is* to be postponed. (It is unlikely
1991           that the difference will break any apps, but postponing should be
1992           easy...)
1993           
1994           No real change, just a comment in the code.
1995
1996 2003-11-11  rkrolib
1997
1998         * ChangeLog: Updated ChangeLog for the day.
1999         * include/GL/freeglut_std.h, progs/demos/One/one.c, src/freeglut_ext.c,
2000           src/freeglut_font.c: Removal of all remaining TABs in the freeglut
2001           *.[ch] files. (I missed a few in the "one" demo, it seems, and some
2002           more crept back into freeglut_(ext|font).c, presumably due to my own
2003           edits when I forgot to use the "freeglut-c-mode" in EMACS.)
2004         * progs/demos/One/one.c: Moved glutInit*() functions ahead of
2005           glutInit(). (This is proper use of glutInit() in general, since it
2006           allows the user to override settings via {argc, argv} command-line
2007           params.)
2008         * progs/demos/One/one.c: Style normalizations: Removed CRs and hard TABs
2009           mostly.
2010         * ChangeLog, src/freeglut_structure.c: Corrected the numbering of the
2011           ChangeLog (there were two (110)s).
2012           
2013           Added entries summarizing my commits since September or late August,
2014           for the benefit of those lacking both CVS and web access.
2015         * progs/demos/demos.dsw: Added CRs to the ends of all lines in MS
2016           developer studio demos.dsw file..
2017
2018 2003-11-10  rkrolib
2019
2020         * src/freeglut_main.c: John's fix for the minimize/close/maximize
2021           controls no longer working. WIN32 expected us to pass the message on
2022           up the chain (or do something else with it), rather than just throwing
2023           away the event, for a certain class of events. (See the diffs for more
2024           details.)
2025           
2026           The code is also slightly reformatted from what was previously in the
2027           repository.
2028         * freeglut.dsp, freeglut_static.dsp,
2029           progs/demos/CallbackMaker/CallbackMaker.dsp, progs/demos/demos.dsw: A
2030           *.dsp file for CallbackMaker in the demos.
2031           
2032           Plus updated *.dsp and *.dsw files to reflect the new freeglut header
2033           file.
2034           
2035           NOTE: The prior version of the *.dsw file does not in fact have CRs. I
2036           thought that it did. For consistency, I am not putting them in in this
2037           version, either. (At least one person said that his MSVC++ system is
2038           happy with the current files. If there are problems, we can easily add
2039           the CRs, but that should be a separate commit...)
2040         * configure.in, progs/demos/CallbackMaker,
2041           progs/demos/CallbackMaker/CallbackMaker.c,
2042           progs/demos/CallbackMaker/Makefile.am,
2043           progs/demos/Fractals_random/fractals_random.c,
2044           progs/demos/Makefile.am: New demo from John: CallbackMaker.
2045           
2046           This demo shows the use of every callback that you can register with
2047           freeglut, and also generates event reports so that you can see what is
2048           happening to the program as it runs.
2049           
2050           Not much to look at, but both utilitarian and a practical example.
2051           
2052           Please double-check that I updated everything that needs to be
2053           updated. I reran autogen.sh and ./configure, and it built okay for me.
2054           (^&
2055         * src/freeglut_structure.c: Hm. I thought that I already hit this file
2056           for style normalization. Oh well... Should be no functional changes.
2057           Should be pretty close to in-line with the style of changes that I've
2058           been making else- where.
2059         * src/freeglut_structure.c: Ooops. Forgot that we already had a call to
2060           fgClearCallBacks() in the code and added a second one. I just deleted
2061           the new one. Sorry.
2062         * src/freeglut_structure.c: Added Nigel's suggested code to clear all
2063           but the destroy callback early on, leaving Destroy to be cleared later
2064           after the last possible point where it should be invoked.
2065         * src/freeglut_menu.c: Modified the menus to refer to {border} rather
2066           than {FREEGLUT_MENU_BORDER}, in fghDisplayMenuBox(). The local
2067           variable was already defined and used for some purposes, so we might
2068           as well use it throughout. It does serve to shorten and clarify the
2069           code a bit---though I have mixed feelings about creating aliases that
2070           way.
2071           
2072           Still, the variable already existed and was already used in places.
2073           (We could even move it into the freeglut state, or make it a {const
2074           static} value...)
2075           
2076           Oh well. Stuff to ponder.
2077         * src/freeglut_cursor.c: Well, a couple of days have gone by, so I
2078           assume that items (a) and (b) in the freeglut_cursor.c file's "Open
2079           issues" comment are now satisfactor- ily closed.
2080           
2081           I also partially implemented some error-checking, using my limited
2082           understanding of how Xlib users are supposed to do this. (No one
2083           commented about the lack of error-checking, pro or con. Perhaps
2084           someone will care to comment now?)
2085           
2086           At present, it just will print out a warning, via fgWarning(). In part
2087           because I'm not sure what is best to do, and in part because failure
2088           to set the cursor type is probably not a fatal problem.
2089
2090 2003-11-08  Christopher John Purnell
2091
2092         * progs/demos/Fractals/Makefile.am,
2093           progs/demos/Fractals_random/Makefile.am,
2094           progs/demos/Lorenz/Makefile.am, progs/demos/One/Makefile.am: Applied
2095           Braden McDaniel's non-srcdir build patch.
2096
2097 2003-11-08  rkrolib
2098
2099         * src/freeglut_menu.c: A first pass over freeglut_menu.c to bring it in
2100           line with the rest of freeglut's style. Mostly re-indenting and
2101           splitting long lines. For those that may be concerned: No, I didn't do
2102           any more arrangements of the form (CONST == a) rather than (a ==
2103           CONST). (^&
2104         * progs/demos/Fractals_random/fractals_random.c: Altered the way that
2105           the {random} value (from 0..3) is chosen.
2106           
2107           Previously, it picked out two adjacent bits in the result of rand().
2108           Unfortunately, these adjacent bits (at least on NetBSD) have a certain
2109           amount of dependence. After a period (perhaps a thousand or so?), it
2110           starts to repeat the pattern of those two bits. (I think; I haven't
2111           actually tested that directly.) This presumably is locking it into a
2112           an an N-way attractor on the "snowflake", such that if you zoom in a
2113           ways, you will start to see some spots *quickly* are colored, and
2114           others are *never* colored.
2115           
2116           What I've done now is to pick up two widely-spaced bits in a single
2117           rand() call. (Perhaps we would do as well to pick up something like
2118           bit #16 from two consecutive rand() calls?) These widely-spaced bits
2119           have a lower statistical dependence on one another (if I can get away
2120           with using that term for an arithmetic operation; though since stats
2121           has more to do with sampling and less to do with true randomness, I
2122           may be safe).
2123           
2124           The net effect, at leats on NetBSD, is far better snowflake if you
2125           zoom in on it.
2126
2127 2003-11-07  rkrolib
2128
2129         * src/freeglut_main.c: From John:
2130           
2131           [This] implements the visible/invisible for Windows. It does NOT call
2132           the visibility callback, though.
2133         * src/freeglut_main.c: Stripped out the now truly extraneous {braces} in
2134           such forms as:
2135           
2136           if( ... ) { INVOKE_WCB( ... ); }
2137           
2138           Check for compiling on WIN32.
2139         * src/freeglut_internal.h: Adopted Eero Pajarre's suggestion of using a
2140           do { ... } while rather than { ... } for the INVOKE_WCB() macro. This
2141           lets it be used "more like a function", in that:
2142           
2143           if( ... ) INVOKE_WCB( ... ); else ...
2144           
2145           ...is now legal.
2146         * src/freeglut_main.c: Pure code janitoring: Shuffled the order of some
2147           of the case statements in the UNIX_X11 X event processing loop. (In
2148           general, it's nice to have case statements sorted, especially when you
2149           have a *huge* switch statement like this. That makes it easier to find
2150           the one that you're looking for, and to see if a certain case is
2151           defined...)
2152         * src/freeglut_main.c: Combined EnterNotify and LeaveNotify event
2153           processing in the UNIX_X11 event loop.
2154         * src/freeglut_main.c: Added ReparentNotify case to UNIX_X11 event loop,
2155           to catch the extraneous ReparentNotify event types (type 21).
2156         * src/freeglut_internal.h, src/freeglut_structure.c: Oh well, I might as
2157           well add the call to clear callbacks on window destruction. Also
2158           renamed the function to do this: fgClearCallBacks(). Ho-hum.
2159         * src/freeglut_internal.h, src/freeglut_structure.c: Added
2160           fgInitCallBacks() to freeglut_structure.c. (The function takes an
2161           {SFG_Window *}.) Added prototype to freeglut_internal.h. Added use of
2162           the function to the window initialization. (Don't count on calloc(),
2163           which sets all bits to 0.)
2164         * src/freeglut_gamemode.c: Style normalization; removal of
2165           say-nothing-useful comments.
2166         * src/freeglut_font.c: Normalized the style of freeglut_font.c No
2167           substantial alterations.
2168         * src/freeglut_ext.c: Somewhat normalized the style of this file.
2169           
2170           Also moved the "glutMouseWheelFunc" extension down into the
2171           "extensions" part of the table. (Purely internal organization. It will
2172           still be found.)
2173         * src/freeglut_display.c: Further normalization of the code's style. No
2174           substantial changes.
2175         * src/freeglut_cursor.c: Split one last overlong line in
2176           freeglut_cursor.c.
2177         * src/freeglut_cursor.c: Added GLUT_CURSOR_NONE support in UNIX_X11
2178           (well, NetBSD; you lot need to try it on others; (^&).
2179           
2180           Deallocated some resources that we are creating. VERY slight memory
2181           leak, but plugged now.
2182           
2183           These two complete the first two "Open issues" ( (a) and (b) ). The
2184           first one also completes X support for glutSetCursor(). If others can
2185           verify, we can fully demote the outstanding bug over this to
2186           WIN32-specific.
2187           
2188           I'll delete the dead Open issues and re-letter the others if someone
2189           will cross-check me. Or if no one says anything in a day or two. (^&
2190         * src/freeglut_cursor.c: Further normalized the style of the cursor
2191           code.
2192         * src/freeglut_callbacks.c: Slight style improvements. Two rules of
2193           thumb that are almost always good to apply:
2194           
2195           * Don't write a == CONST. Instead, write CONST == a. Or, more
2196           generally (in C like languages): Avoid putting an lvalue on the
2197           left-hand side of an == comparison. (For consistency, I try to avoid
2198           lvalues on the left- hand side of any comparison---but == is the most
2199           notorious.)
2200           
2201           (An "lvalue" is a value that can safely go on the left side of an "="
2202           assignment, of course. (^&)
2203           
2204           * Do not write if( !condition ) return; other_thing; return;
2205           
2206           (See page 18 of K&P's _The Elements of Programming Style_.)
2207           
2208           Instead, it is better to just write:
2209           
2210           if( condition ) other_thing; return;
2211           
2212           There are times when sacrificing structured programming (e.g., via
2213           multiple return statements) is okay. But, here, there is no apparent
2214           gain---indeed, there seems only loss---in the non-structured code.
2215         * src/freeglut_main.c: Grr. Forgot to enable the "freeglut" C
2216           programming mode in EMACS, and had a few TABs in the last commit. This
2217           fixes that. Sorry.
2218         * src/freeglut_main.c: Minor corrections to the UNIX_X11 mouse-wheel
2219           support. In part this reflects that {button} is already shifted to the
2220           GLUT numbering, and hence should be counted as 3&4, 5&6, etc.
2221           
2222           The other change was simply to clarify the computation of {direction}.
2223           The original code did some clever arithmetic. The new code is more
2224           straightforward, even if it requires more lines to express.
2225
2226 2003-11-06  rkrolib
2227
2228         * src/freeglut_main.c: Ooops. I screwed up on part of John's fixes.
2229           Sorry.
2230           
2231           I think that I have his fix properly committed now. Mea culpa.
2232         * src/freeglut_callbacks.c, src/freeglut_internal.h,
2233           src/freeglut_main.c, src/freeglut_structure.c: Cleanup pass after
2234           committing callback conversion (from structure to array-of-pointers).
2235           Mostly deleted commented-out struct-based code. Also added some XXX
2236           comments that I though should be pondered. (My own pair of eyes, and
2237           one brain cell, were not sufficient at this time to decide what to do
2238           for those ponderables. (^&)
2239         * src/freeglut_callbacks.c, src/freeglut_init.c,
2240           src/freeglut_internal.h, src/freeglut_joystick.c, src/freeglut_main.c,
2241           src/freeglut_misc.c, src/freeglut_structure.c: Converted the
2242           "Callbacks" structure (with named members holding individual callback
2243           pointers) to a "CallBacks" array in fgState. (This is to allow us to
2244           write a loop to clear all callbacks from windows when the window is
2245           dead/dying. Using this, we can safely assign NULL to each in a loop.)
2246           
2247           Support includes two new macros, FETCH_WCB() and INVOKE_WCB(). See
2248           freeglut_internal.h for more details there.
2249           
2250           Some typedefs of function pointer types were altered to make them more
2251           uniform (necessary for the macros).
2252           
2253           All references to window-based callbacks in freeglut are updated to
2254           use the new macros.
2255           
2256           Old usages will cause compile-time errors.
2257           
2258           As a side bonus, the new invocation macro sets the current window and
2259           checks pointers so that these common steps can be uniformly done on
2260           every window-based callback. This makes it easier to do things right.
2261           At the same time, the array notation (and now required associated
2262           casts) make it harder to bypass the macros and abuse the function
2263           pointers, in general.
2264           
2265           After this commit, I will go through the code and clean up dangling
2266           issues about formatting. This commit is just a "it now works, let's
2267           checkpoint it" type of affair.
2268         * src/freeglut_main.c: From John, a couple of lines needed to be changed
2269           to fix the mouse wheel support on WIN32.
2270         * progs/demos/Fractals_random/fractals_random.c: Update from John:
2271           Includes mouse button, mouse motion, and mouse wheel support.
2272
2273 2003-11-04  rkrolib
2274
2275         * src/freeglut_menu.c: Multiple changes from John. Style issues, plus a
2276           bug-fix to check a pointer before deallocating some memory.
2277           
2278           He also removed one obsolete comment, and added some more comments.
2279         * src/freeglut_main.c: Some changes, mostly from John. Mostly style
2280           changes.
2281           
2282           One bug fix from John: Execution state bug-fix in glutMainLoop(), per
2283           his post yesterday.
2284           
2285           One fix from me: Changed "if( ButtonPress )" to "if( pressed )".
2286           {ButtonPress} is a constant.
2287         * progs/demos/Fractals_random/fractals_random.c: Per John's emailed
2288           desire to have all files obey UNIX EOL conventions, I have stripped
2289           out carriage returns from this file.
2290           
2291           This is the *only* change, but every line is touched. If you want to
2292           see the real differences between older and newer versions, you will
2293           have to get local copies of each and first match their EOL
2294           convnetions.
2295         * progs/demos/Lorenz/lorenz.c: Update from John:
2296           
2297           I [John] added a feature to check for memory leaks under Windows.
2298         * progs/demos/Fractals_random/fractals_random.c: Update from John:
2299           
2300           I [John] converted everything to double precision to avoid compiler
2301           warnings. I also added a feature to check for memory leaks under
2302           Windows and removed a memory leak (surprise!).
2303         * src/freeglut_callbacks.c, src/freeglut_cursor.c,
2304           src/freeglut_display.c, src/freeglut_ext.c, src/freeglut_font.c,
2305           src/freeglut_gamemode.c, src/freeglut_geometry.c,
2306           src/freeglut_glutfont_definitions.c, src/freeglut_init.c,
2307           src/freeglut_joystick.c, src/freeglut_main.c, src/freeglut_menu.c,
2308           src/freeglut_misc.c, src/freeglut_overlay.c, src/freeglut_state.c,
2309           src/freeglut_structure.c, src/freeglut_teapot.c,
2310           src/freeglut_videoresize.c, src/freeglut_window.c: Got rid of the
2311           G_LOG_DOMAIN junk, per discussion on the mailing list.
2312         * src/freeglut_callbacks.c: Minor formatting quibbles. (The brain isn't
2313           up to anything more serious at the moment.)
2314         * src/freeglut_main.c: Missed a block where one level was 2-space
2315           indented.
2316           
2317           Nit-picked a few other lines for consistency.
2318
2319 2003-11-03  rkrolib
2320
2321         * src/freeglut_init.c: Fixed a memory leak (thanks for the correction,
2322           John!).
2323           
2324           Smoothed over some code style issues while I was here, but left the
2325           init-string parsing alone for now.
2326         * freeglut13.dsp, freeglutdll.dsp, freeglutstatic.dsw: Deleted 3 files
2327           (again?) from CVS, on John's request. Old/obsolete MSVC++ project
2328           files. (freeglut13.dsp, freeglutdll.dsp, freeglutstatic.dsw)
2329         * src/freeglut_main.c, src/freeglut_structure.c: * Indentation issues. *
2330           Pulled some common code into a nicely packaged function. * Found some
2331           pointer/int issues.
2332         * src/freeglut_main.c: Heh.
2333           
2334           Forgot to wrap the fgGetXModifiers() in a #if. Fixed.
2335         * src/freeglut_main.c: Extracted some common code to a subroutine, in
2336           glutMainLoopEvent(). (The common code was a snippet to compute X
2337           keyboard modifiers as a bit-mask of GLUT symbols.)
2338         * src/freeglut_main.c: Caught a few more little style issues.
2339         * src/freeglut_main.c: Added a "case" for an X event that we turn on but
2340           do not use. ({MapNotify}). We already caught {MappingNotify} and
2341           {UnmapNotify}.
2342         * src/freeglut_main.c: * Fixed a bug in the X11 handling of
2343           scrollwheel/mouse. The old code, I believe, checked if *either* a
2344           wheel or button callback was set, and then decided which to use---and
2345           unconditionally called it. I left the "either" check in, but added
2346           additional checks before actually doing the invocation. * Lots of
2347           reformatting. Massive. The usual suspects, though, and fairly trivial:
2348           Re-indenting to standard size, shuffling some spaces to match the
2349           freeglut "standard" of: if( ... ) ...and: func( ... )
2350
2351 2003-10-31  rkrolib
2352
2353         * src/freeglut_callbacks.c: Cleaned up one macro definition.
2354           
2355           Picked up an over-long line that I missed before.
2356         * src/freeglut_callbacks.c: Fit some long lines to 80 columns.
2357         * src/freeglut_cursor.c, src/freeglut_display.c,
2358           src/freeglut_gamemode.c, src/freeglut_geometry.c: Last of the hard
2359           TABs in the src/*.c files.
2360         * src/freeglut_init.c, src/freeglut_joystick.c, src/freeglut_main.c,
2361           src/freeglut_menu.c, src/freeglut_state.c: En masse removal of most (I
2362           think) of the remaining hard TABs in files. There are still a couple
2363           of files that need to be hit.
2364         * src/freeglut_window.c: Picked up some stray TABs scattered in this
2365           file.
2366         * src/freeglut_window.c: Noted by XXX comments that the XFlush() calls
2367           probably shouldn't be there. Flushing the X protocol stack every
2368           little bit both adds clutter to the code and may impede performance.
2369           
2370           It seems that we should be able to get rid of these, though allowing
2371           client code to directly call glutMainLoopEvent() does make it a little
2372           more complicated.
2373           
2374           Something to ponder.
2375         * src/freeglut_window.c: Polished off the say-nothing-new comments and
2376           lines-over-80-columns in freeglut_window.c
2377           
2378           There should be no functional changes.
2379         * src/freeglut_window.c: Missed a few say-nothing-new comments in
2380           fgOpenWindow(). Eeep. Should be better now. (^&
2381         * src/freeglut_window.c: Cleansed fgCloseWindow(): * say-nothing-new
2382           comments axed. * de-TABbed. * Made the white-space to be consistent.
2383         * src/freeglut_window.c: Cleaned up fgOpenWindow(): * Removed TABs. *
2384           Made indentation consistent. * Deleted say-nothing-new comments. *
2385           Changed an *error*check* from an assert to an if(). (The error-check
2386           was on window creation; we don't want to lose that if the user
2387           compiles with asserts deactivated. Also, assert()s really tell us more
2388           about programming errors, rather than run-time errors, so it is a
2389           little misleading to use assert() for error-checks, even if you can
2390           depend upon assert()s never being compiled away to null statements.) *
2391           Added some XXX comments for things that bear some rumination.
2392         * src/freeglut_window.c: Cleanup to fgSetWindow(). The usual suspects: *
2393           Removed tabs. * Made indentation consistent. * Killed off
2394           say-nothing-new comments.
2395         * src/freeglut_window.c: Cleanup to fgSetupixelFormat(). Should be no
2396           functional changes.
2397           
2398           Code facelift included:
2399           
2400           * Consistent indentation. * Removal of all TABs (there were a bunch).
2401           * Fit to 80 columns.
2402         * src/freeglut_window.c: There should be no changes to code
2403           functionality, though a fair bit of little changes to the code
2404           appearance.
2405           
2406           * Fit the comments at the start of the file to fit 80 columns. * Noted
2407           an unusual feature of the ATTRIB() macro. * Added ATTRIB_VAL() macro
2408           which is really just two ATTRIB()s. This lets us put things like
2409           {ATTRIB (GLX_RED_SIZE); ATTRIB (1);} on one statement: {ATTRIB_VAL
2410           (GLX_RED_SIZE, 1);}. I did this to preserve some of the layout of
2411           information while also avoiding the nasty semi-visible ";" in the
2412           middle of a line of code. And by putting the {braces} in the macro
2413           definition, I was able to visually clean code of the form: if
2414           (condition) { ATTRIB( X ); ATTRIB( 1 ); } ...rewriting as: if
2415           (condition) ATTRIB_VAL( X, 1 ); * Eliminated a bunch of
2416           say-nothing-new comments in fgChooseVisual(). * Combined some
2417           semi-useful comments into a block comment summarizing a loop.
2418
2419 2003-10-30  rkrolib
2420
2421         * src/freeglut_structure.c: Finished off most of the issues with
2422           freeglut_structure.c, from a stylistic point of view (at least,
2423           insofar as: The original file's code was INCON- SISTANT. I did not
2424           remove the "!= NULL" stuff, did not address the shortest-branch-first
2425           issue for if-else statements, and left some rather ugly "if (x) {...
2426           return y} /* else do this */ return NULL;" garbage. This should, I
2427           think, be re-written as "if (x) return y; else return NULL;" or even
2428           better, "ret = NULL; if (x) ret = y; return ret;"
2429           
2430           In short, the code still has some issues, but I think that it's a bit
2431           better.
2432           
2433           (Oh, I also got rid of outstanding TABs.)
2434         * src/freeglut_structure.c: Eliminated most of the say-nothing-new
2435           comments.
2436           
2437           Fit most of the code to no more than 80 columns.
2438           
2439           Raised some issues about completeness/correctness of trying to
2440           decrement the max-window-ID (apparently in order to partially recycle
2441           some window IDs to slightly slow the rate of growth of window IDs). (I
2442           didn't change what the code does, though.)
2443           
2444           The functionality of the code should be unchanged.
2445         * src/freeglut_main.c: Forgot to set {direction} explicitly to +/- 1 for
2446           freeglut mouse-wheel API on MS-WINDOWS. Oops.
2447           
2448           Now it should always report +/- 1 on MS-WINDOWS, per the spec.
2449         * src/freeglut_main.c: Minor fix to allow for multiple ticks to be
2450           received at one time by the WIN32 code. Take abs(direction) as the
2451           number of ticks, and count it down.
2452           
2453           <stdlib.h> *should* be included by freeglut_internal.h, I think, so it
2454           should be okay; otherwise add a suitable #include.
2455         * src/freeglut_main.c: Grrr. My attempt to commit got aborted, and the
2456           commit message was lost. Now I've lost track of what I said I'd done.
2457           Something like:
2458           
2459           * Fixed some issues with multiple wheels. * Noted in comments some
2460           issues about other-than-3-real-buttons. * Fixed formatting to fit 80
2461           columns. * Removed some BCPL/C++ style comments (//) that are not
2462           legal, and which, if memory servers, are not even strictly legal when
2463           disabled by preprocessor directives. E.g.,
2464           
2465           #if 0 not-syntactically-valid-C #endif
2466           
2467           ...is not legal. Though most cpp's will discard the bracketed material
2468           completely before the main C compiler pass has a chance to analyze the
2469           syntax. (MSVC++ and GCC both don't seem to mind the BCPL style
2470           comments in plain C, but let's keep the sources clean, eh?) * Fixed a
2471           problem that would have caused freeglut to report doubled wheel events
2472           under XFree86.
2473           
2474           Not tested other than compiling. Personally, I think that the
2475           interface is inherently broken at this point unless you are willing to
2476           get user- configuration. (Which would then solve the complaint that
2477           Steve had about computing the tick-size on behalf of applications.)
2478           I.e., there is NO WAY to know if we have the right buttons to start
2479           wheels at, or if there are any buttons after the first wheel(s), etc.
2480           We just have to guess---and if we are wrong, we can get varying
2481           degrees of brokeness.
2482
2483 2003-10-29  Christopher John Purnell
2484
2485         * src/freeglut_window.c: There is a problem with the way I did
2486           glutFullscreen() in my last commit. So I've copied the way the game
2487           mode does it. It's not ideal but it works. The glutGet() for the
2488           window border sizes will also have to be fixed at some point.
2489         * src/freeglut_window.c: Rewrote glutFullscreen(). It now correctly
2490           places the window in X11. It now uses system dependent code for more
2491           efficient use of windowing system calls.
2492
2493 2003-10-29  rkrolib
2494
2495         * src/freeglut_joystick.c: Should be no real changes to the code
2496           function.
2497           
2498           I missed a few lines that went past 80 columns. (^&
2499           
2500           Also made formatting more consistent.
2501           
2502           Added a couple of XXX comments re. FreeBSD vs. general BSD #ifdef's.
2503         * src/freeglut_joystick.c: Should be entirely superficial changes to
2504           code style:
2505           
2506           * Fit lines to 80 columns. (It does get tiresome seeing long lines
2507           forced to break by the right-hand border of windows...(^&) *
2508           Eliminated say-nothing-new comments. * Made formatting more consistent
2509           in spots. * Eliminated some hard TAB characters.
2510         * src/freeglut_joystick.c: Added Thierry's change to include
2511           sys/param.h. This lets us pick out version numbers for OS releases
2512           corresponding to system headers.
2513           
2514           I modified it to also work with NetBSD; I cannot confirm if it is safe
2515           with any other systems, so it remains protected by a #if.
2516         * src/freeglut_state.c: Deleted some say-nothing-new comments.
2517           
2518           Added some XXX's where comments seemed to require future attention.
2519           
2520           Added some new comments with XXX's where future attention seems
2521           profitable.
2522         * src/freeglut_state.c: Deleted a bunch of say-nothing-new comments.
2523           Someday, there shall be an end to them.
2524         * src/freeglut_state.c: Previous changes were made without the freeglut
2525           major mode in EMACS. Re-tweaked some lines (mostly got rid of some
2526           TABs, but also resulted in some changed indentation).
2527           
2528           Reformatted a big comment to fit to 80 columns.
2529           
2530           Removed bogus references to "Linux". (UNIX, and/or X11 were relavent,
2531           and "UNIX/X11" was substituted for "Linux" in those places. This
2532           includes UNIX-alike systems.)
2533         * src/freeglut_state.c: Rewrote the TODO BEFORE THE STABLE RELEASE
2534           comment to fit to 80 columns.
2535           
2536           Cleanup of fghGetConfig(). (One return statement, simpler code.)
2537           
2538           Made glutSetOption() have a more consistent style---and also got its
2539           lines to stay under 80 columns.
2540         * src/freeglut_misc.c: Got the last of the say-nothing-new comments in
2541           freeglut_misc.c.
2542           
2543           (I would have picked them up before, but wanted the bug-fix and
2544           conversion-to-error-message changes to go in before I did more
2545           superficial stuff.)
2546         * src/freeglut_cursor.c, src/freeglut_main.c, src/freeglut_misc.c: *
2547           Fixed a bug that I introduced in fgWarning()/fgError(): I thought that
2548           ((a) || (b)) was defined to have value as: (a) if (a) != 0 (b) if (a)
2549           == 0
2550           
2551           ...instead, it has value 0/1. This was causing a bug. It's probably
2552           just as well, since what I was trying to do definitely fell into the
2553           category of "clever code" rather than "clear code".
2554           
2555           Sorry.
2556           
2557           * Made glutSetKeyRepeat() call fgError() if you go out of range. (The
2558           old code silently did nothing---not even a warning.)
2559           
2560           If it is really desirable to keep running, we should probably at least
2561           generate an fgWarning().
2562           
2563           * Deleted some say-nothing-new comments.
2564           
2565           * XXX added: Is glutSetKeyRepeat() deprecated?
2566
2567 2003-10-28  rkrolib
2568
2569         * include/GL/freeglut_ext.h, src/freeglut_callbacks.c,
2570           src/freeglut_ext.c, src/freeglut_internal.h, src/freeglut_main.c:
2571           Commit, mostly of work from John:
2572           
2573           * Removed some say-nothing-useful comments. * Added some tentative
2574           mouse-wheel support. * Fairly massive reformatting of code.
2575           
2576           I made some secondary changes to his changes:
2577           
2578           * One compilation error was fixed (missing close-paren + semicolon). *
2579           Deleted a few ore say-nothing-useful comments. * Some of John's code
2580           was strangely formatted to the point that it seemed completely out of
2581           place, so I took the liberty of reformatting it. Since I used GNU
2582           EMACS's <tab> key (which re-indents rather than inserts TAB
2583           characters), I had to propagate some indentation changes a little
2584           further than the bare necessity to match up with John's changes. (John
2585           seems to shoot for 2-space indents, while EMACS (and I, I confess)
2586           strongly prefer 4-space indents. The code that I was re-indenting had
2587           been put to 8-space indents, however.)
2588           
2589           I have *not* tested the code beyond compiling. I assume that John did
2590           (and that the compilation error was a result a minor change just
2591           before asking me to commit).
2592         * src/freeglut_cursor.c: Re-indentation style changes from John.
2593           
2594           There should be no alterations to how the code performs.
2595           
2596           (I modified how the X11 section of the set-cursor code is indented to
2597           slightly better match (IMHO) the rest of his changes.)
2598
2599 2003-10-27  rkrolib
2600
2601         * src/freeglut_menu.c: Converted a few "x != NULL" tests to "x" for
2602           clarity.
2603           
2604           I think that I've touched enough lines of source for one morning.
2605         * src/freeglut_menu.c: Cleaned up a little redundancy in a comment on
2606           the {menu_pen_*} variables.
2607         * src/freeglut_menu.c: Removed about 90 lines of say-nothing-new
2608           comments.
2609           
2610           The code should be functionally unaltered by these changes.
2611         * src/freeglut_menu.c: Propogated a pointer-check from menu-attach to
2612           menu-detach. (Apparently, in some cases, the Menu member variable can
2613           be NULL.)
2614           
2615           Corrected the menu-attach code to make sure that both Window and Menu
2616           pointers are non-NULL (rather than "at least one").
2617           
2618           Rewrote button-checks to more simply and more clearly assert that the
2619           "menu button" is a valid button for menu actions: Instead of
2620           laboriously comparing against the three valid buttons (0, 1, 2 or
2621           GLUT_BUTTON_*), we do a simpler range-check and the upper bound is
2622           {FREEGLUT_MAX_MENUS}, allowing us to change the number of menuable
2623           buttons fairly easily in the future.
2624           
2625           Also deleted a few say-nothing-new comments.
2626         * src/freeglut_menu.c: Cosmetic changes (mostly deleted a few more
2627           say-nothing-new comments). The functionality of the code should be
2628           unchanged.
2629         * src/freeglut_menu.c: Changed an "#elif TARGET_HOST_UNIX_X11" to
2630           "#else", since this simply governed menu aesthetics. I think that it's
2631           better to have a default that works than to break completely, should
2632           freeglut ever be ported to a new (non-WIN32, non-UNIX/X11) target.
2633         * src/freeglut_menu.c: Minor modifications to the menus:
2634           
2635           * Updated an old "TODO BEFORE STABLE" comment.
2636           
2637           * Expanded a comment re. some #define macros.
2638           
2639           * Made colors and font choice system dependent. The UNIX freeglut
2640           menus look more like UNIX GLUT menus, now. (This is PURELY a cosmetic
2641           change. But it achieves better compatibility visually.)
2642         * src/freeglut_main.c: Cleaned up glutMainLoop() a bit:
2643           
2644           * Deleted numerous say-nothing-new comments. * Reformatted a
2645           say-something-useful comment to fit on an 80-column display.
2646         * src/freeglut_main.c: Partially (re-?)unified some of the
2647           glutMainLoopEvent() code. The only code that really needs to be
2648           system-specific is the window event handling, which in MS-WINDOWS is
2649           tucked into a separate function. In UNIX/X11, it's all spilled out
2650           into glutMainLoopEvent() for some reason.
2651           
2652           If the X11 code could be tucked into another function,
2653           glutMainLoopEvent() could be platform-independent.
2654
2655 2003-10-26  rkrolib
2656
2657         * src/freeglut_main.c: Moved the idle callback out of
2658           glutMainLoopEvent() and into glutMainLoop(), per discussion on the
2659           list. The code looks okay, to me, though I remain less than wholly
2660           convinced that treating idles as special cases is the best way to go.
2661           Still, a case can be made for taking "non-event" idle callbacks out of
2662           the "event loop". From an organizational perspective, I think that
2663           it's an improvement, and it fixes a bug for at least one program.
2664         * src/freeglut_menu.c: Added John's text-positioning modification.
2665           
2666           The lines that he was altering were very oddly-split, so while I was
2667           at it, I repaired the line-break damage.
2668         * src/freeglut_joystick.c: Committed change from Nigel to fix the
2669           joystick bug. (The joystick code was not setting the GLUT window prior
2670           to calling callbacks.)
2671           
2672           Please verify. If so, this closes out, I think, the latter half of
2673           that bug report, so anyone with the means to modify/close bug reports
2674           should do so upon verification of the fix.
2675         * src/freeglut_main.c: Superficial cleanup of the code. Mostly taking
2676           lines such as:
2677           
2678           ...
2679           
2680           /* * <Enslish recapituation of the single following C statement> */
2681           <single C statement>
2682           
2683           ...and rewrote as:
2684           
2685           ... <single C statement>
2686           
2687           freeglut_main.c still has a lot of that in it, but it looks a bit
2688           better, now.
2689         * src/freeglut_init.c: Added some error-checking (particularly w.r.t.
2690           strdup()).
2691           
2692           Deleted numerous 4-line "padding" sequences of C-as-English trans-
2693           literation comments.
2694           
2695           Re-indented some (but not all) code that is using 2-space indentation.
2696           (Most of the freeglut code seems to be using 4-space indentation.)
2697           
2698           I did not touch the "INIT DISPLAY STRING PARSING" code, since it is
2699           filled with a ton of over-long lines and also appears to be in more
2700           flux than the rest of the code. (Well, I added one error-check to a
2701           strdup().)
2702         * src/freeglut_font.c: Removed two more bogus "carriage return"
2703           references where the comments were in fact talking about a line feed
2704           (a.k.a. newline, LF, ^J, \n, ...).
2705         * src/freeglut_init.c, src/freeglut_internal.h, src/freeglut_main.c:
2706           Fixed the buglet about failing to report the program's name on error-
2707           messages. Please test. (Modified glutInit(), the state structure, and
2708           the warn/err functions.)
2709
2710 2003-10-23  James Jones <puggles@users.sourceforge.net>
2711
2712         * ChangeLog: Released 2.0.1
2713
2714 2003-10-21  Christopher John Purnell
2715
2716         * configure.in, include/GL/Makefile.am, include/GL/freeglut.h,
2717           include/GL/freeglut_std.h, include/GL/glut.h,
2718           progs/demos/Fractals/Makefile.am,
2719           progs/demos/Fractals_random/Makefile.am,
2720           progs/demos/Lorenz/Makefile.am, progs/demos/One/Makefile.am,
2721           src/Makefile.am: Added --disable-replace-glut option to autoconf
2722           configure.
2723
2724 2003-10-15  James Jones <puggles@users.sourceforge.net>
2725
2726         * NEWS: Noted the release of 2.0.0
2727         * configure.in: Version bump
2728
2729 2003-10-14  rkrolib
2730
2731         * src/freeglut_font.c: Swept the freeglut_font.c for comment cleanup: *
2732           Got rid of the "rewrite C as English" comments. * Corrected several
2733           bogus references to "carriage returns" (in strings). The symbols were
2734           newlines or EOLs or LFs (\n). They were *not* carriage returns or CRs
2735           (\r). * Clarified the comments on glBitmap() calls.
2736
2737 2003-10-13  rkrolib
2738
2739         * progs/demos/Fractals/fractals.c,
2740           progs/demos/Fractals_random/fractals_random.c: Small bug-fix that's
2741           been on my mind:
2742           
2743           Modified the two Fractals* demos so that they only clear (for the
2744           random one) or redraw (for the non-random one) if there is need to do
2745           so. (E.g., pressing the space bar should not clear and redraw the
2746           random fractal since no parameters are altered.)
2747         * src/freeglut_cursor.c, src/freeglut_display.c: Removed the obsolete
2748           hack (or very ill-conceived dream), fgDisplayCursor().
2749         * src/freeglut_display.c: Cleaned up some of the style issues (mostly
2750           "fluff" comments) in freeglut_display.c.
2751         * src/freeglut_cursor.c: Comment-cleaning sweep.
2752           
2753           Mostly got rid of the say-it-in-English comments that were adding 1
2754           line of English and 2 or 3 lines of filler for each of several lines
2755           of C code. Updated a couple of other comments, and tweaked some
2756           white-space.
2757         * src/freeglut_callbacks.c: Cleaned up the comments a bit in the
2758           callbacks.c file (mostly removed some of the
2759           kill-4-lines-to-translate-one-line-of-C-into-English comments).
2760
2761 2003-10-12  rkrolib
2762
2763         * src/freeglut_cursor.c: Added all missing GLUT cursor types for X11.
2764           
2765           (Type NONE is not properly supported, yet.)
2766           
2767           Corrected behavior for the several old types: * Wrong glyphs. *
2768           Reversed glyphs (left/right confusion!)
2769           
2770           There are some remaining imperfections, but it's a lot closer to GLUT
2771           comformity, now.
2772
2773 2003-10-11  rkrolib
2774
2775         * src/freeglut_callbacks.c: Three tidying-up changes to the code of
2776           freeglut_callbacks.c; none of them are Earth-shattering, but as I
2777           swept through looking somewhat more systematically for errors, I
2778           picked these off. See the diff's for details.
2779         * src/freeglut_callbacks.c: Fixed a basic readability/style error in the
2780           code. (Two statements per line are almost never a good idea; in this
2781           case the combined line was past 80 columns.)
2782         * src/freeglut_callbacks.c: Added a safety-check on a memory allocation.
2783           (Timers were using dynamic memory allocation but NOT checking the
2784           result!)
2785         * src/freeglut_menu.c: Committed two lines from John to help fix the
2786           menus a bit.
2787         * src/freeglut_callbacks.c: Check the glutDisplayFunc() callback for
2788           being a NULL pointer. This is illegal and is disallowed in GLUT 3.0+,
2789           so we disallow it too in freeglut 2.0.1+
2790
2791 2003-10-09  rkrolib
2792
2793         * progs/demos/Fractals/fractals.c,
2794           progs/demos/Fractals_random/fractals_random.c: Applied John's updated
2795           ReadConfigFile() changes to the fractals demos.
2796         * progs/demos/Fractals_random/fractals_random.c: Fixed: * glutInit()
2797           ordering w.r.t. glutInit*() and {argv} processing. * Aspect ratio. *
2798           Removed depth-buffer usage. (Also done for Fractals in previous
2799           commit...)
2800         * progs/demos/Fractals/fractals.c: A few minor changes: * glutInit*()
2801           calls should precede glutInit(), per se, generally. This is so that
2802           glutInit()'s configuration (which picks up on user parameters) can
2803           override application defaults. * glutInit() should be called before
2804           ANY attempt to process {argv, argc}. This is because there may be
2805           GLUT/freeglut parameters (such as "-display" on X11). * If the window
2806           is tall and skinny, rather than short and squat, we need to handle
2807           aspect ratios differently.
2808           
2809           The first is a user-interface bug. The second is a serious bug
2810           (especially since the demo assumes that argv[1] contains a filename).
2811           The third is a display bug.
2812
2813 2003-10-08  rkrolib
2814
2815         * src/freeglut_main.c: Changed CreateNotify (in X11 ONLY) to act like a
2816           ConfigureNotify event.
2817           
2818           This is done so that subwindows on X11 will get "resize" events when
2819           they are created. Old GLUT did this---presumably by design in order to
2820           ensure that (a) All windows get notified of their size as soon as the
2821           window exists, and (b) probably more importantly, so that windows and
2822           sub-windows behave as much alike as possible. I believe that GLUT was
2823           right to do this, and I believe that compatibility requires this (I
2824           have a sample program that breaks in freeglut but not GLUT without
2825           this fix).
2826           
2827           I did not touch the Microsoft side, because I don't know what their OS
2828           does---nor if old GLUT was historically system-dependent about this.
2829
2830 2003-10-08  Eric Sandall
2831
2832         * ChangeLog, src/freeglut_menu.c: freeglut_menu.c:217,519,532: Fix menus
2833           to stay in the window (John Fay)
2834
2835 2003-10-08  rkrolib
2836
2837         * src/freeglut_menu.c: Several updates from John and myself.
2838           
2839           The broad outlines are:
2840           
2841           * Color schemes are now in variables, are closer to old GLUT, and are
2842           system dependent (as old GLUT did). * You can change the font to any
2843           bitmapped font more easily, which can aid in finding a better
2844           approximation. (Old GLUT does not seem to have used a GLUT font for
2845           the menus, which causes problems for us.) The menus rescale
2846           automatically, including the triangle "arrow" for sub-menus. * Menus
2847           have real borders, and the placement of highlighting is much improved.
2848         * src/freeglut_main.c: Fixed a bug in the menu callback behavior. Menus
2849           were not setting the current window correctly.
2850
2851 2003-10-06  Eric Sandall
2852
2853         * ChangeLog, src/freeglut_menu.c: freeglut_menu.c:328 Fix submenu
2854           triangle (John Fay)
2855
2856 2003-10-04  James Jones <puggles@users.sourceforge.net>
2857
2858         * ChangeLog, src/freeglut_main.c, src/freeglut_structure.c: Tweaking for
2859           menu behavior in Linux regarding mouse whatnot - John Fay
2860
2861 2003-10-01  rkrolib
2862
2863         * src/freeglut_joystick.c: Applied a patch from "extraeme@netbsd.org" to
2864           add joystick support. Untested, but it compiles for me.
2865           
2866           Should also add Joystick support for older FreeBSD systems. Also
2867           untested.
2868         * src/freeglut_main.c: Added support for more arbitrary number of mouse
2869           buttons (though only the first three can work with menus), in X. This
2870           closes a compatibility gap with old GLUT, and leaves us the option of
2871           supporting scroll-wheels properly.
2872
2873 2003-09-27  Christopher John Purnell
2874
2875         * progs/demos/Fractals/Makefile.am,
2876           progs/demos/Fractals_random/Makefile.am,
2877           progs/demos/Lorenz/Makefile.am, progs/demos/One/Makefile.am: Don't
2878           install the demos.
2879
2880 2003-09-26  James Jones <puggles@users.sourceforge.net>
2881
2882         * progs/demos/Makefile.am: Package the demos.dsw file.
2883         * progs/demos/demos.dsw: Demos workspace for MSVC users
2884
2885 2003-09-24  rkrolib
2886
2887         * src/freeglut_main.c: Corrected a bug w.r.t. display and joystick
2888           events. When getting ready to sleep, we need to go through ALL windows
2889           to check for pending joysticks and to check for pending redisplays. I
2890           was just going through all TOP- LEVEL windows. Eeek. This won't do.
2891
2892 2003-09-23  Brian Paul
2893
2894         * progs/demos/Fractals_random/fractals_random.c: added needClear flag to
2895           take care of initial window clear and window resize clears
2896
2897 2003-09-23  rkrolib
2898
2899         * src/freeglut_init.c: Per Nigel Stewart's comments, converted
2900           
2901           #ifdef TARGET_HOST_...
2902           
2903           to:
2904           
2905           #if TARGET_HOST_...
2906           
2907           in src/freeglut_init.c. These changes should not have any functional
2908           impact at this time, but you don't want bad examples lying around to
2909           trip people up later.
2910         * progs/demos/Fractals_random/fractals_random.c, src/freeglut_main.c,
2911           src/freeglut_window.c: Fixed: * GLUT_SINGLE now should behave more or
2912           less correctly. Thanks to Brian Paul!
2913           
2914           * Sleeping is now cognizant of outstanding redisplays.
2915           
2916           * Fractals_random has been restored more or less to as-before, save
2917           that it uses the more minimal glFlush() rather than glutSwapBuffers().
2918           glutSwapBuffers() was only required when freeglut was incorrectly
2919           handling promotion to double-buffering.
2920
2921 2003-09-22  rkrolib
2922
2923         * src/freeglut_main.c: Moved the #include/#ifdef/#define stuff up to the
2924           top.
2925           
2926           Changed #ifdef to #if, per Nigel(?)'s comment. Ooops.
2927
2928 2003-09-22  Christopher John Purnell
2929
2930         * progs/demos/Fractals/Makefile.am,
2931           progs/demos/Fractals_random/Makefile.am,
2932           progs/demos/Lorenz/Makefile.am, progs/demos/One/Makefile.am: Fix to
2933           allow demos to compile before freeglut has been installed.
2934
2935 2003-09-22  James Jones <puggles@users.sourceforge.net>
2936
2937         * progs/demos/Fractals_random/fractals_random.c: Add an idle function to
2938           ensure that the screen gets drawn even when callbacks are not
2939           generated by the mouse/keyboard.
2940
2941 2003-09-21  James Jones <puggles@users.sourceforge.net>
2942
2943         * progs/demos/Fractals/fractals.c,
2944           progs/demos/Fractals_random/fractals_random.c: Note the possible
2945           buffer overflow in window_title
2946         * progs/demos/Fractals/fractals.c: Fix the window title.
2947         * progs/demos/Fractals_random/fractals_random.c: Fix window title, and
2948           ensure that the random integer is not forced to be zero (Thanks
2949           Richard Rauch!)
2950
2951 2003-09-20  James Jones <puggles@users.sourceforge.net>
2952
2953         * src/freeglut_main.c: Richard Rauch's patch to ensure that freeglut
2954           does not use 100% CPU even while idling.
2955         * src/freeglut_font.c: Resolution for bug 809561 reported by Nigel
2956           Stewart, regarding a possible array underflow error of -1 in the event
2957           of "character" being zero.
2958
2959 2003-09-14  Christopher John Purnell
2960
2961         * configure.in, progs/demos/Fractals/Makefile.am,
2962           progs/demos/Fractals_random/Makefile.am,
2963           progs/demos/Lorenz/Makefile.am, progs/demos/One/Makefile.am,
2964           src/Makefile.am: Removed unused AC_PROG_RANLIB from configure.in Added
2965           passing of $(X_CFLAGS) to compiler.
2966
2967 2003-09-14  James Jones <puggles@users.sourceforge.net>
2968
2969         * include/GL/glut.h: Resolve bug 806008 -- let Microsoft's compiler know
2970           to use Windows libraries even if not using our project files.
2971
2972 2003-09-13  James Jones <puggles@users.sourceforge.net>
2973
2974         * ChangeLog: Taking care of keeping things mostly up-to-date
2975         * TODO: Most everything's been resolved for the 2.0.0 release.
2976         * src/freeglut_joystick.c: Thierry Thomas said that FreeBSD has no
2977           machine/joystick.h, instead a sys/joystick.h. I've made the change --
2978           here's hoping it works.
2979         * progs/demos/One/one.c: Removed the incorrect relative path for
2980           including freeglut.h
2981         * progs/demos/Fractals/Makefile.am,
2982           progs/demos/Fractals_random/Makefile.am,
2983           progs/demos/Lorenz/Makefile.am, progs/demos/One/Makefile.am: Made all
2984           demos compile. Thanks to Thierry Thomas for reporting bug 802809,
2985           which alerted that *none* of the demos compiled automatically!
2986         * src/freeglut_main.c: Nigel Stewart's joystick fix (for hopefully all
2987           platforms), SourceForge bug 805481
2988         * progs/demos/Lorenz/lorenz.dsp, progs/demos/One/one.dsp: Fix location
2989           of the include files from a fixed to relative path. Closes bug 805477
2990         * freeglut.dsp, freeglut.dsw, freeglut_static.dsp, freeglutstatic.dsw:
2991           Add dos line endings. Fixes bug 805476
2992
2993 2003-09-10  Christopher John Purnell
2994
2995         * src/freeglut_joystick.c: A minor fix to that last commit.
2996         * src/freeglut_joystick.c: Removed some remaining glib depandancy.
2997
2998 2003-09-10  James Jones <puggles@users.sourceforge.net>
2999
3000         * src/freeglut_main.c: Re-add catches for the case in which a menu
3001           callback destroys the menu. - John Fay
3002
3003 2003-09-09  Christopher John Purnell
3004
3005         * src/freeglut_main.c: More to fix a deinitialization related crash.
3006         * src/freeglut_structure.c: Fix for a deinitialization related crash.
3007
3008 2003-09-08  James Jones <puggles@users.sourceforge.net>
3009
3010         * src/freeglut_main.c, src/freeglut_structure.c: Menus should deallocate
3011           better now - John Fay
3012
3013 2003-09-05  James Jones <puggles@users.sourceforge.net>
3014
3015         * Makefile.am: Add freeglut_static.dsp to the releases
3016
3017 2003-09-03  Christopher John Purnell
3018
3019         * src/freeglut_gamemode.c: Moved #ifdef for non XFree86 X11 compile.
3020
3021 2003-09-02  Christopher John Purnell
3022
3023         * src/freeglut_window.c: Fix to stop fgSetWindow(NULL) crashing on X11.
3024
3025 2003-08-29  James Jones <puggles@users.sourceforge.net>
3026
3027         * src/freeglut_main.c, src/freeglut_menu.c, src/freeglut_structure.c:
3028           These change a bunch of assignments to calls to set the current window
3029           correctly, and also (possibly) fixes most of the remaining menu
3030           problem. - John Fay
3031         * src/freeglut_main.c: Another typecast bugfix from John Fay
3032
3033 2003-08-28  Christopher John Purnell
3034
3035         * src/freeglut_init.c: Changed #ifdef to #if
3036
3037 2003-08-28  James Jones <puggles@users.sourceforge.net>
3038
3039         * src/freeglut_font.c: change the GLUT stroke function arguments from
3040           "const char *" to "const unsigned char *" - John Fay
3041         * include/GL/freeglut_ext.h, include/GL/glut.h: Changes stroke function
3042           arguments from "const char*" to "const unsigned char *" - John Fay
3043
3044 2003-08-28  Christopher John Purnell
3045
3046         * freeglut-1.3: Removing files from old freeglut-1.3 directory.
3047
3048 2003-08-28  James Jones <puggles@users.sourceforge.net>
3049
3050         * src/freeglut_callbacks.c, src/freeglut_geometry.c,
3051           src/freeglut_init.c, src/freeglut_joystick.c, src/freeglut_main.c,
3052           src/freeglut_menu.c, src/freeglut_structure.c: Casting changes, John
3053           Fay
3054
3055 2003-08-27  James Jones <puggles@users.sourceforge.net>
3056
3057         * src/freeglut_init.c, src/freeglut_internal.h, src/freeglut_main.c,
3058           src/freeglut_menu.c: Major overhaul to the menu system, by John Fay
3059
3060 2003-08-27  Christopher John Purnell
3061
3062         * include/GL/freeglut.h, include/GL/freeglut_ext.h, include/GL/glut.h:
3063           Added double underscores to the header included macros.
3064
3065 2003-08-20  Christopher John Purnell
3066
3067         * src/freeglut_gamemode.c: Minor typo fix
3068
3069 2003-08-19  Christopher John Purnell
3070
3071         * src/freeglut_gamemode.c: Moving that "#if TARGET_HOST_UNIX_X11" to the
3072           correct place.
3073
3074 2003-08-17  Christopher John Purnell
3075
3076         * ChangeLog, src/freeglut_gamemode.c, src/freeglut_internal.h,
3077           src/freeglut_window.c: Game mode fixes from Bernhard Kaindl and Eric
3078           Espie.
3079
3080 2003-08-05  Christopher John Purnell
3081
3082         * src/Makefile.am, src/freeglut_menu.c, src/freeglut_window.c,
3083           src/mwmborder.c: Using override_redirect instead of motif wm hints. It
3084           now rasies the menu windows before showing them. Move the show to
3085           after the reshape and position so we don't get a flash of the menu
3086           window at it's old size and position.
3087         * src/mwmborder.c: I suspect a lot of people will not have motif
3088           installed.
3089
3090 2003-08-05  Eric Sandall
3091
3092         * ChangeLog, src/Makefile.am, src/freeglut_window.c: (98)
3093           src/Makefile.am:34 Added mwmborder.c (99) src/freeglut_window.c:67
3094           Removed #included "mwmborder.c"
3095         * ChangeLog, src/freeglut_main.c: src/freeglut_main.c:816 and :1571, set
3096           the current window (John F. Fay)
3097
3098 2003-08-04  Christopher John Purnell
3099
3100         * src/freeglut_state.c: Added X11 code for
3101           glutGet(GLUT_WINDOW_BORDER_WIDTH) and
3102           glutGet(GLUT_WINDOW_HEADER_HEIGHT).
3103         * src/freeglut_internal.h, src/freeglut_state.c: Replacing
3104           glutGet(GLUT_WINDOW_X) and glutGet(GLUT_WINDOW_Y) on X11 with
3105           something that works. Also a minor correction to the xf86vidmode
3106           autoconf stuff.
3107
3108 2003-08-04  James Jones <puggles@users.sourceforge.net>
3109
3110         * src/freeglut_window.c: Keep the X11 decoration-zapping code confined
3111           to X11-using platforms! Oops!
3112         * src/freeglut_window.c, src/mwmborder.c: Menus' decorations are removed
3113           on Linux. Not sure if we want the mwmborder.c a separate file or not;
3114           doing it separate for right now. Makefile was not updated, since the
3115           .c is just #included.
3116
3117 2003-08-03  Christopher John Purnell
3118
3119         * configure.in: Got rid of configure warnings when using a newer
3120           autoconf
3121
3122 2003-08-02  Christopher John Purnell
3123
3124         * src/freeglut_glutfont_definitions.c, src/freeglut_internal.h: Putting
3125           stuff back that was undone with the menu code committed.
3126
3127 2003-08-02  James Jones <puggles@users.sourceforge.net>
3128
3129         * src/freeglut_callbacks.c, src/freeglut_display.c,
3130           src/freeglut_glutfont_definitions.c, src/freeglut_init.c,
3131           src/freeglut_internal.h, src/freeglut_main.c, src/freeglut_menu.c,
3132           src/freeglut_state.c, src/freeglut_structure.c, src/freeglut_window.c:
3133           Major menu changes (they appear in their own window, have own
3134           rendering context) by John Fay and a little by James C. Jones. They
3135           work perfectly on Win32, and work... on Linux.
3136
3137 2003-08-01  Christopher John Purnell
3138
3139         * configure.in, src/Makefile.am, src/freeglut_glutfont_definitions.c,
3140           src/freeglut_internal.h: Added autoconf detection for the xf86 vid
3141           mode extensions.
3142
3143 2003-08-01  Eric Sandall
3144
3145         * ChangeLog, src/freeglut_window.c: src/freeglut_window.c:551 Removed
3146           extra carriage return for Windows users (John F. Fay)
3147         * ChangeLog: Credit Dave Reed for fix
3148         * ChangeLog, src/freeglut_internal.h: src/freeglut_initial.c:91 Added
3149           check for SOLARIS OS
3150
3151 2003-07-23  Christopher John Purnell
3152
3153         * include/GL/glut.h, src/Makefile.am, src/freeglut_font.c,
3154           src/freeglut_glutfont_definitions.c: This should put an end to the
3155           font binary compatibility issue.
3156
3157 2003-07-23  Eric Sandall
3158
3159         * ChangeLog, src/freeglut_window.c: src/freeglut_window.c Windowing
3160           fixes from John F.
3161         * ChangeLog, doc/Makefile.am: doc/Makefile.am:4 Removed trailing
3162           backslash and added an empty last line
3163
3164 2003-07-23  Brian Paul
3165
3166         * doc/download.html: no change, testing CVS
3167
3168 2003-07-22  Brian Paul
3169
3170         * doc/download.html: no change, just testing CVS
3171
3172 2003-07-22  Eric Sandall
3173
3174         * ChangeLog, freeglut.lsm: freeglut.lsm:3 Removed 'beta' label for next
3175           release, thanks to Bernhard Kaindl.
3176
3177 2003-07-21  Christopher John Purnell
3178
3179         * src/Makefile.am: The version info had the revision and the age
3180           transposed.
3181
3182 2003-07-21  Eric Sandall
3183
3184         * ChangeLog, src/Makefile.am: src/Makefile.am:38 Changed versioning to
3185           11:0:8 thanks to Bernhard Kaindl
3186
3187 2003-07-17  Eric Sandall
3188
3189         * ChangeLog, freeglut.dsp, freeglut_static.dsp: Applied John F. Fay's
3190           fixes to freeglut.dsp and freeglut_static.dsp
3191         * ChangeLog, src/freeglut_state.c: Changed the overlay
3192           (freeglut_state.c:662) to return FALSE, as it's not imp lemented yet
3193
3194 2003-07-12  Andreas Umbach <marvin@dataway.ch>
3195
3196         * src/Makefile.am: renamed freeglut library to glut, bumped version info
3197           to 3:8:0
3198         * configure.in: bumped version number to 2.0.0
3199         * Makefile.am, configure.in, doc/Makefile.am, include/GL/Makefile.am,
3200           progs/Makefile.am, progs/demos/Fractals/Makefile.am,
3201           progs/demos/Fractals_random/Makefile.am,
3202           progs/demos/Lorenz/Makefile.am, progs/demos/Makefile.am,
3203           progs/demos/One/Makefile.am, src/Makefile.am: changes for make dist
3204         * freeglut13.plg: MSVC generated file
3205
3206 2003-07-11  Christopher John Purnell
3207
3208         * include/GL/glut.h, src/freeglut_font.c: Fix for the font binary
3209           compatibility problem.
3210
3211 2003-07-10  Christopher John Purnell
3212
3213         * src/Makefile.am: Changed to build libfreeglut.so.2.0.0
3214
3215 2003-07-10  James Jones <puggles@users.sourceforge.net>
3216
3217         * TODO, freeglut.dsp, freeglut_static.dsp: Changes to TODO, Windows
3218           files - from John Fay
3219         * progs/demos/Fractals_random/Fractals_random.dsp: Changes by John Fay
3220         * progs/demos/Fractals/Fractals.dsp, progs/demos/Fractals/fractals.c:
3221           Changes to the Fractals demo by John Fay
3222         * progs/demos/One/one.dsp: Initial project file from John Fay
3223         * progs/demos/Lorenz/lorenz.c, progs/demos/Lorenz/lorenz.dsp:
3224           Modifications from John Fay
3225
3226 2003-07-07  Christopher John Purnell
3227
3228         * src/freeglut_main.c: glutMainLoopEvent() was not closing windows
3229           properly. Moved call to fgCloseWindows() from glutMainLoop() to the
3230           end of glutMainLoopEvent().
3231
3232 2003-07-03  Eric Sandall
3233
3234         * ChangeLog, src/freeglut_misc.c: Removed unused char *ptr from
3235           freeglut_misc.c
3236
3237 2003-07-02  Christopher John Purnell
3238
3239         * src/freeglut_main.c: It was crashing on and event for a unknown
3240           window.
3241
3242 2003-07-02  Brian Paul
3243
3244         * src/freeglut_misc.c: rewrite of glutExtensionSupported - works
3245           correctly now
3246
3247 2003-07-02  Eric Sandall
3248
3249         * ChangeLog: * Removed tests directory
3250         * ChangeLog, Makefile.am, configure.in, progs/demos/One,
3251           progs/demos/One/Makefile.am, progs/demos/One/one.c, tests: * Removed
3252           genfonts/genstrokes code, updated configure.in and Makefile.in
3253           
3254           * Moved tests/one.c into progs/demos/One/one.c, updated configure.in
3255           and Makefile.in
3256         * genfonts: Removed genfonts
3257
3258 2003-07-02  Christopher John Purnell
3259
3260         * genfonts/to_stroke.y: Added some semicolons that yacc was warning
3261           about.
3262
3263 2003-07-01  James Jones <puggles@users.sourceforge.net>
3264
3265         * AUTHORS: John Fay commanded me to add my name to the file. He's crazy,
3266           but that's okay.
3267
3268 2003-07-01  Eric Sandall
3269
3270         * ChangeLog, src/freeglut_misc.c: Fixed the 'ptr + len' problem in
3271           freeglut_misc.c:90
3272
3273 2003-07-01  Brian Paul
3274
3275         * doc/freeglut_user_interface.html: version bumps
3276         * tests/Makefile.am: bump version to 2.0
3277         * src/Makefile.am, src/freeglutdll.def: bump versions to 2.0
3278         * src/freeglut_gamemode.c: xf86VidMode error checking (Andrew
3279           Lentvorski)
3280
3281 2003-06-30  Brian Paul
3282
3283         * progs/demos/Lorenz, progs/demos/Lorenz/lorenz.c,
3284           progs/demos/Lorenz/lorenz.dsp: Lorenz attractor demo (John Fay)
3285         * freeglut.dsp, freeglut_static.dsp: updates from John Fay
3286
3287 2003-06-28  Eric Sandall
3288
3289         * ChangeLog, include/GL/Makefile.am: Now installs freeglut_ext.h and
3290           glut.h to /usr/include/GL (was missing before)
3291
3292 2003-06-27  Brian Paul
3293
3294         * include/GL/freeglut_ext.h, src/freeglut_init.c,
3295           src/freeglut_internal.h, src/freeglut_main.c, src/freeglut_state.c,
3296           src/freeglut_stroke_mono_roman.c: XF86 game mode fixes, context
3297           sharing option. (John Fay)
3298
3299 2003-06-25  Eric Sandall
3300
3301         * ChangeLog: Added another of my changes (freeglut.kdevelop) and fixed
3302           the version number for my MS VS change (*.dsp)
3303
3304 2003-06-25  Brian Paul
3305
3306         * src/freeglut_internal.h: version bumps
3307         * freeglut.lsm, include/GL/glut.h, src/freeglut_stroke_mono_roman.c,
3308           src/freeglut_stroke_roman.c: Assorted version 2.0.0 updates (John
3309           Fay).
3310         * doc/freeglut_user_interface.html: updated version, italicize freeglut
3311           (John Fay)
3312
3313 2003-06-25  Eric Sandall
3314
3315         * ChangeLog, freeglut.dsp, freeglut_static.dsp: Added 'freeglut_ext.c'
3316           to the project files 'freeglut.dsp' and 'freeglut_static.dsp' (New
3317           list #10)
3318
3319 2003-06-24  Andreas Umbach <marvin@dataway.ch>
3320
3321         * ChangeLog: Fixed autogen.sh and removed aclocal.m4
3322         * aclocal.m4: this file is autogenerated by aclocal
3323         * autogen.sh: fixed aclocal / autoheader order; some cosmetics
3324
3325 2003-06-24  Eric Sandall
3326
3327         * freeglut.kdevelop: Project file for Gideon (KDevelop 3.0)
3328
3329 2003-06-23  Eric Sandall
3330
3331         * ChangeLog, Makefile.am, TODO, configure.in, freeglut.dsp,
3332           freeglut.kdevprj, freeglut13.dsp, freeglut13.plg, freeglut_static.dsp,
3333           freeglutdll.dsp, src, src/Makefile.am, src/freeglut_callbacks.c,
3334           src/freeglut_cursor.c, src/freeglut_display.c, src/freeglut_ext.c,
3335           src/freeglut_font.c, src/freeglut_font_data.c,
3336           src/freeglut_gamemode.c, src/freeglut_geometry.c, src/freeglut_init.c,
3337           src/freeglut_internal.h, src/freeglut_joystick.c, src/freeglut_main.c,
3338           src/freeglut_menu.c, src/freeglut_misc.c, src/freeglut_overlay.c,
3339           src/freeglut_state.c, src/freeglut_stroke_mono_roman.c,
3340           src/freeglut_stroke_roman.c, src/freeglut_structure.c,
3341           src/freeglut_teapot.c, src/freeglut_videoresize.c,
3342           src/freeglut_window.c, src/freeglutdll.def, src/templates,
3343           src/templates/cpp_template, src/templates/header_template,
3344           tests/Makefile.am: Changed all references to the 'freeglut-1.3'
3345           directory to 'src', copied 'freeglut-1.3' to 'src' and added all files
3346           from 'src' to the repository (TODO #34).
3347         * ChangeLog: Updated ChangeLog with my aclocal.m4 change
3348         * aclocal.m4: Updated aclocal.m4 with aclocal 1.7.3 (was created with
3349           aclocal 1.5)
3350
3351 2003-06-23  Brian Paul
3352
3353         * freeglut-1.3/freeglut_geometry.c: adjusted precision (John Fay)
3354         * doc/freeglut_user_interface.html, freeglut-1.3/freeglut_display.c,
3355           freeglut-1.3/freeglut_gamemode.c, freeglut-1.3/freeglut_geometry.c,
3356           freeglut-1.3/freeglut_teapot.c, include/GL/freeglut_ext.h,
3357           include/GL/glut.h: Assorted updates from John Fay.
3358
3359 2003-06-20  Eric Sandall
3360
3361         * TODO: Updated TODO from John Fay
3362
3363 2003-06-20  Brian Paul
3364
3365         * progs, progs/demos, progs/demos/Fractals,
3366           progs/demos/Fractals/Fractals.dsp, progs/demos/Fractals/fractals.c,
3367           progs/demos/Fractals/fractals.dat, progs/demos/Fractals_random,
3368           progs/demos/Fractals_random/Fractals_random.dsp,
3369           progs/demos/Fractals_random/fractals.dat,
3370           progs/demos/Fractals_random/fractals_random.c: Fractal demo (John Fay)
3371
3372 2003-06-20  Eric Sandall
3373
3374         * ChangeLog: Added the autogen.sh addition to ChangeLog
3375         * autogen.sh: Initial version of autogen.sh, tested here and creates the
3376           correct files
3377
3378 2003-06-20  Brian Paul
3379
3380         * freeglut-1.3/freeglut_gamemode.c, freeglut-1.3/freeglut_state.c:
3381           Windows patches (Eero Pajarre)
3382         * NEWS: list the 1.4 release (fill in date) - this is a cvs check-in
3383           test
3384
3385 2003-06-19  Don Heyse <dheyse@hotmail.com>
3386
3387         * freeglut-1.3/freeglut_joystick.c: Oops, missed the
3388           fghJoystickRawRead() fix for FreeBSD.
3389
3390 2003-06-19  Brian Paul
3391
3392         * doc/freeglut_user_interface.html, freeglut-1.3/freeglut_display.c,
3393           freeglut-1.3/freeglut_ext.c, freeglut-1.3/freeglut_internal.h,
3394           freeglut-1.3/freeglut_main.c: s/FreeGLUT/freeglut/
3395
3396 2003-06-19  Don Heyse <dheyse@hotmail.com>
3397
3398         * freeglut-1.3/freeglut_joystick.c: Applied tthierry's patch to fix
3399           compiling on FreeBSD.
3400
3401 2003-06-19  Brian Paul
3402
3403         * freeglut-1.3/freeglut_internal.h: added VERSION_MAJOR/MINOR/PATCH
3404         * doc/freeglut_user_interface.html: restore text lost from previous
3405           check-in
3406         * include/GL/glut.h: s/FREEGLUT_VERSION_1_3/FREEGLUT_VERSION_1_4/
3407
3408 2003-06-19  Eric Sandall
3409
3410         * include/GL/freeglut_ext.h, include/GL/glut.h: GLUT_VERSION updates
3411           from John Fay
3412
3413 2003-06-18  Eric Sandall
3414
3415         * AUTHORS: Forgot a file...looked so innocous just sitting there... :)
3416         * ChangeLog, doc/freeglut_user_interface.html,
3417           freeglut-1.3/freeglut_callbacks.c, freeglut-1.3/freeglut_ext.c,
3418           freeglut-1.3/freeglut_internal.h, freeglut-1.3/freeglut_menu.c,
3419           freeglut-1.3/freeglut_structure.c, freeglut-1.3/freeglut_teapot.c,
3420           freeglut-1.3/freeglut_window.c, include/GL/freeglut_ext.h: * Hopefully
3421           I did THIS one right (used 'cvs update' to Merge)
3422           
3423           Authors - The first update in quite a while
3424           
3425           ChangeLog - Added the recent changes
3426           
3427           freeglut_callbacks.c - Added Aleksandar Donev's menu destruction
3428           callback
3429           
3430           freeglut_internal.h - Added the user data to the structures and made
3431           the menu state/status callbacks window-independent
3432           
3433           freeglut_menu.c - Removed several OpenGL compiler warnings and added
3434           A. Donev's menu user data functions
3435           
3436           freeglut_structure.c - Added Aleksandar Donev's menu destruction
3437           callback
3438           
3439           freeglut_teapot.c - Removed or suppressed several compiler warnings
3440           
3441           freeglut_window.c - Updated the window positioning code and added A.
3442           Donev's window user data
3443           
3444           freeglut_ext.h - Added the menu destruction callback and user data
3445           functions
3446         * freeglut-1.3/freeglut_ext.h: * Removed freeglut_ext.h (wasn't supposed
3447           to be added)
3448
3449 2003-06-18  Brian Paul
3450
3451         * doc/freeglut_user_interface.html, freeglut-1.3/freeglut_internal.h,
3452           freeglut-1.3/freeglut_state.c, include/GL/freeglut_ext.h,
3453           include/GL/glut.h: Added FREEGLUT_VERSION_1_3. Added GLUT_VERSION for
3454           glutGet(). Added glutGet() documentation.
3455         * freeglut-1.3/freeglut_display.c, freeglut-1.3/freeglut_ext.h,
3456           freeglut-1.3/freeglut_init.c, freeglut-1.3/freeglut_internal.h,
3457           freeglut-1.3/freeglut_main.c, freeglut-1.3/freeglut_state.c,
3458           freeglut-1.3/freeglut_structure.c, freeglut-1.3/freeglut_window.c:
3459           remove DOS-style CR characters
3460         * doc/freeglut_user_interface.html: added glutGetProcAddress and
3461           GLUT_FPS info
3462         * ChangeLog: added glutGetProcAddress() and GLUT_FPS
3463
3464 2003-06-17  Brian Paul
3465
3466         * freeglut-1.3/freeglut_display.c, freeglut-1.3/freeglut_init.c,
3467           freeglut-1.3/freeglut_internal.h: restore GLUT_FPS env var feature
3468           lost in previous check-in
3469
3470 2003-06-17  Eric Sandall
3471
3472         * ChangeLog: * Updated ChangeLog
3473         * freeglut-1.3/freeglut_main.c, freeglut-1.3/freeglut_structure.c: Set
3474           #4: * Fixes a couple of compiler warnings and other bugs. *
3475           freeglut_main.c: Removes a compiler warning * freeglut_structure.c:
3476           Sets the current window before calling the window closure callback *
3477           Possibly other changes
3478         * freeglut-1.3/freeglut_ext.h: * Rest of Set #3
3479         * freeglut-1.3/freeglut_state.c: Set #3: Fixes for window positioning
3480           problem Windows
3481         * freeglut-1.3/freeglut_init.c: Eero Pajarre's GLUT_ICON code for
3482           Windows
3483         * freeglut-1.3/freeglut_display.c, freeglut-1.3/freeglut_internal.h,
3484           freeglut-1.3/freeglut_window.c: First group of patches: Adds
3485           single-buffered rendering (or its emulation) in Windows.
3486
3487 2003-06-17  Brian Paul
3488
3489         * freeglut-1.3/freeglut_display.c, freeglut-1.3/freeglut_init.c,
3490           freeglut-1.3/freeglut_internal.h: added GLUT_FPS env var option
3491         * freeglut-1.3/Makefile.am, freeglut-1.3/freeglut_ext.c,
3492           include/GL/freeglut_ext.h: added glutGetProcAddress()
3493
3494 2003-06-12  Don Heyse <dheyse@hotmail.com>
3495
3496         * freeglut-1.3/freeglut_main.c: Fix the keyboard up callback and a
3497           compiler warning.
3498         * freeglut-1.3/freeglut_structure.c: Set the current window before
3499           calling the window closure callback.
3500         * freeglut-1.3/freeglut_state.c, include/GL/freeglut_ext.h: John's
3501           window positioning corrections.
3502         * freeglut-1.3/freeglut_init.c: Eero Pajarre's icon code.
3503         * freeglut-1.3/freeglut_display.c, freeglut-1.3/freeglut_internal.h,
3504           freeglut-1.3/freeglut_window.c: Single buffered rendering for Windows.
3505
3506 2003-06-02  Don Heyse <dheyse@hotmail.com>
3507
3508         * doc/freeglut_user_interface.html: John Documented InitWindowPosition
3509           extensions and added some kbd fn info.
3510         * ChangeLog: Documented Johns changes from May 03.
3511         * freeglut-1.3/freeglut_state.c: Do not allow glutGet to reposition the
3512           window 1 pixel toward bottom right.
3513         * freeglut-1.3/freeglut_main.c: Pass mouse pos to Windows kbd callback.
3514           Resequenced a few things for UNIX.
3515
3516 2003-03-23  Christopher John Purnell
3517
3518         * freeglut-1.3/freeglut_gamemode.c: Applied patch to fix GameMode issues
3519           supplied by Bernhard Kaindl.
3520
3521 2003-03-12  Don Heyse <dheyse@hotmail.com>
3522
3523         * include/GL/glut.h: Switch to ANSI C comments.
3524         * freeglut-1.3/freeglut_cursor.c, freeglut-1.3/freeglut_display.c,
3525           freeglut-1.3/freeglut_font.c, freeglut-1.3/freeglut_geometry.c,
3526           freeglut-1.3/freeglut_internal.h, freeglut-1.3/freeglut_joystick.c,
3527           freeglut-1.3/freeglut_main.c, freeglut-1.3/freeglut_structure.c,
3528           freeglut-1.3/freeglut_window.c: Switch to ANSI C comments. Removed
3529           always true tests on unsigned char. Single buffering fix..
3530
3531 2003-02-13  Don Heyse <dheyse@hotmail.com>
3532
3533         * freeglut.dsp, freeglut.dsw, freeglut_static.dsp: Switching to John
3534           Fays version of the VC++ project files.
3535
3536 2003-02-08  Steve Baker <steve@sjbaker.org>
3537
3538         * freeglut-1.3/freeglut_display.c, freeglut-1.3/freeglut_joystick.c:
3539           Removed erroneous GPL license comments.
3540
3541 2003-02-07  Don Heyse <dheyse@hotmail.com>
3542
3543         * freeglut-1.3/freeglut_callbacks.c, freeglut-1.3/freeglut_cursor.c,
3544           freeglut-1.3/freeglut_display.c, freeglut-1.3/freeglut_font_data.c,
3545           freeglut-1.3/freeglut_gamemode.c, freeglut-1.3/freeglut_geometry.c,
3546           freeglut-1.3/freeglut_init.c, freeglut-1.3/freeglut_joystick.c,
3547           freeglut-1.3/freeglut_misc.c, freeglut-1.3/freeglut_overlay.c,
3548           freeglut-1.3/freeglut_stroke_mono_roman.c,
3549           freeglut-1.3/freeglut_stroke_roman.c, freeglut-1.3/freeglut_teapot.c,
3550           freeglut-1.3/freeglut_videoresize.c: Moved freeglut_internal.h to the
3551           freeglut source code private directory.
3552         * freeglut-1.3/freeglut_structure.c: SubWindow border thickness fix.
3553           Overlay changes in glutGet.
3554         * freeglut-1.3/freeglut_main.c, freeglut-1.3/freeglut_menu.c,
3555           freeglut-1.3/freeglut_state.c, freeglut-1.3/freeglut_window.c: Johns
3556           changes for layers, fgSetWindow, and fgSetupPixelFormat.
3557         * freeglut-1.3/freeglut_font.c: John fixed a bug that make bitmap font
3558           one pixel wider than its drawn.
3559         * freeglut-1.3/freeglut_internal.h, include/GL/freeglut_internal.h:
3560           Moved freeglut_internal.h to the private directory with the other
3561           freeglut sources.
3562         * include/GL/freeglut.h, include/GL/freeglut_ext.h, include/GL/glut.h:
3563           Broke freeglut.h into glut.h and freeglut_ext.h
3564
3565 2003-01-06  Don Heyse <dheyse@hotmail.com>
3566
3567         * freeglut-1.3/freeglutdll.def: Exports file for Win32 dll. One EXPORT
3568           for each FGAPI line in freeglut.h
3569
3570 2003-01-04  Steve Baker <steve@sjbaker.org>
3571
3572         * aclocal.m4, freeglut-1.3/freeglut_joystick.c: Cleanup joystick
3573           deallocation.
3574
3575 2002-12-10  Don Heyse <dheyse@hotmail.com>
3576
3577         * freeglut.dsw, freeglutdll.dsp: Allow DLL and static library build on
3578           Windows.
3579         * include/GL/freeglut.h: Added check for FREEGLUT_DLL to allow static &
3580           DLL build on Windows.
3581
3582 2002-12-04  Don Heyse <dheyse@hotmail.com>
3583
3584         * freeglut-1.3/freeglut_font_data.c: More bitmap font spacing fixes from
3585           John.
3586
3587 2002-11-29  Don Heyse <dheyse@hotmail.com>
3588
3589         * freeglut-1.3/freeglut_init.c: Fixed Win95 crash when getenv("DISPLAY")
3590           returned NULL ptr.
3591         * freeglut-1.3/freeglut_font_data.c: The lowercase t in helvetica12 was
3592           too skinny.
3593         * freeglut-1.3/freeglut_font.c, freeglut-1.3/freeglut_font_data.c:
3594           Adjusted character spacing on a few fonts.
3595         * ChangeLog: Many updates from John Fay.
3596         * freeglutstatic.dsw: Added Visual C++ 6 Static library project for John
3597           Fay.
3598
3599 2002-11-28  Don Heyse <dheyse@hotmail.com>
3600
3601         * freeglut.dsp: Visual C++ 6 project file for static freeglut lib.
3602         * include/GL/freeglut.h, include/GL/freeglut_internal.h: Many updates
3603           from John Fay. (freeglut.h may need a small change to allow Win32 DLL
3604           build again)
3605         * freeglut-1.3/freeglut_geometry.c: Many updates from John Fay.
3606         * freeglut-1.3/freeglut_callbacks.c, freeglut-1.3/freeglut_cursor.c,
3607           freeglut-1.3/freeglut_font.c, freeglut-1.3/freeglut_font_data.c,
3608           freeglut-1.3/freeglut_gamemode.c, freeglut-1.3/freeglut_init.c,
3609           freeglut-1.3/freeglut_main.c, freeglut-1.3/freeglut_menu.c,
3610           freeglut-1.3/freeglut_misc.c, freeglut-1.3/freeglut_state.c,
3611           freeglut-1.3/freeglut_stroke_mono_roman.c,
3612           freeglut-1.3/freeglut_stroke_roman.c,
3613           freeglut-1.3/freeglut_structure.c, freeglut-1.3/freeglut_window.c:
3614           Many updates from John Fay.
3615         * freeglut-1.3/freeglut_joystick.c: Fixes from freeglut_portable patch.
3616           Memory leak fix from John. Return_if_fail fix.
3617
3618 2002-11-26  Don Heyse <dheyse@hotmail.com>
3619
3620         * doc/freeglut_user_interface.html: Added on behalf of John Fay.
3621
3622 2002-10-22  Don Heyse <dheyse@hotmail.com>
3623
3624         * freeglut-1.3/freeglut_geometry.c: Implemented tetrahedra, octahedra,
3625           dodecahedra, and icosahedra. Checked in on behalf of John F. Fay
3626           <john.fay@eglin.af.mil>.
3627
3628 2002-05-20  Don Heyse <dheyse@hotmail.com>
3629
3630         * freeglut-1.3/freeglut_font.c: Fixed previous fix so it compiles.
3631
3632 2002-05-20  Christopher John Purnell
3633
3634         * freeglut-1.3/freeglut_font.c: My bad.
3635
3636 2002-05-18  Christopher John Purnell
3637
3638         * freeglut-1.3/Makefile.am, freeglut-1.3/freeglut_font.c,
3639           freeglut-1.3/freeglut_stroke_mono_roman.c,
3640           freeglut-1.3/freeglut_stroke_roman.c, genfonts/Roman_M.src,
3641           genfonts/lex.l, genfonts/to_stroke.y, genfonts/wfont.h,
3642           include/GL/freeglut.h, include/GL/freeglut_internal.h: Added stroke
3643           fonts.
3644
3645 2002-05-17  Christopher John Purnell
3646
3647         * freeglut-1.3/freeglut_cursor.c, freeglut-1.3/freeglut_display.c,
3648           freeglut-1.3/freeglut_overlay.c, freeglut-1.3/freeglut_teapot.c,
3649           freeglut-1.3/freeglut_videoresize.c, tests/one.c: Removed some DOS
3650           line ends.
3651
3652 2002-05-16  Christopher John Purnell
3653
3654         * freeglut-1.3/freeglut_main.c: Removed one last glib call.
3655
3656 2002-01-20  Steve Baker <steve@sjbaker.org>
3657
3658         * README, freeglut-1.3/.deps/freeglut_callbacks.P,
3659           freeglut-1.3/.deps/freeglut_cursor.P,
3660           freeglut-1.3/.deps/freeglut_display.P,
3661           freeglut-1.3/.deps/freeglut_font.P,
3662           freeglut-1.3/.deps/freeglut_font_data.P,
3663           freeglut-1.3/.deps/freeglut_gamemode.P,
3664           freeglut-1.3/.deps/freeglut_geometry.P,
3665           freeglut-1.3/.deps/freeglut_init.P,
3666           freeglut-1.3/.deps/freeglut_joystick.P,
3667           freeglut-1.3/.deps/freeglut_main.P,
3668           freeglut-1.3/.deps/freeglut_menu.P,
3669           freeglut-1.3/.deps/freeglut_misc.P,
3670           freeglut-1.3/.deps/freeglut_overlay.P,
3671           freeglut-1.3/.deps/freeglut_state.P,
3672           freeglut-1.3/.deps/freeglut_structure.P,
3673           freeglut-1.3/.deps/freeglut_teapot.P: Removed a bunch of '.P' files
3674           that don't belong in the CVS archive.
3675
3676 2001-08-05  Christopher John Purnell
3677
3678         * freeglut-1.3/freeglut_callbacks.c, freeglut-1.3/freeglut_main.c,
3679           freeglut-1.3/freeglut_window.c, include/GL/freeglut_internal.h: Added
3680           keyup events code. Added missing specal keys. Made menu callbacks
3681           global.
3682         * freeglut-1.3/freeglut_window.c: More position tweeks.
3683
3684 2001-08-04  Christopher John Purnell
3685
3686         * freeglut-1.3/freeglut_main.c, include/GL/freeglut.h: Fixed redisplay
3687           bug. Fixed modifier values.
3688         * freeglut-1.3/freeglut_window.c: Improved window positioning.
3689
3690 2001-07-30  Christopher John Purnell
3691
3692         * freeglut-1.3/freeglut_main.c, freeglut-1.3/freeglut_structure.c: A
3693           stupid bug fixed.
3694
3695 2001-07-30  Andreas Umbach <marvin@dataway.ch>
3696
3697         * freeglut-1.3/freeglut_init.c, freeglut-1.3/freeglut_main.c: one more
3698           g_assert removed
3699         * include/GL/freeglut_internal.h: removed glib dependencies from win32
3700         * freeglut-1.3/freeglut_gamemode.c, freeglut-1.3/freeglut_init.c,
3701           freeglut-1.3/freeglut_main.c, freeglut-1.3/freeglut_window.c: -
3702           removed glib dependencies from win32 code
3703
3704 2001-07-29  Christopher John Purnell
3705
3706         * freeglut-1.3/freeglut_structure.c: Fixed bug list code.
3707         * freeglut-1.3/Makefile.am, freeglut-1.3/freeglut_callbacks.c,
3708           freeglut-1.3/freeglut_font.c, freeglut-1.3/freeglut_font_data.c,
3709           freeglut-1.3/freeglut_gamemode.c, freeglut-1.3/freeglut_geometry.c,
3710           freeglut-1.3/freeglut_init.c, freeglut-1.3/freeglut_joystick.c,
3711           freeglut-1.3/freeglut_main.c, freeglut-1.3/freeglut_menu.c,
3712           freeglut-1.3/freeglut_misc.c, freeglut-1.3/freeglut_state.c,
3713           freeglut-1.3/freeglut_structure.c, freeglut-1.3/freeglut_window.c,
3714           genfonts/Makefile.am, genfonts/genfonts.c, genfonts/genstroke.c,
3715           include/GL/freeglut.h, include/GL/freeglut_internal.h: Removed glib
3716           dependency
3717         * configure.in, freeglut-1.3/Makefile.am, genfonts/Makefile.am: The
3718           build system now looks for X.
3719
3720 2001-07-27  Steve Baker <steve@sjbaker.org>
3721
3722         * doc, doc/download.html, doc/freeglut.html, doc/freeglut_logo.png,
3723           doc/index.html, doc/ogl_sm.png, doc/progress.html, doc/structure.html:
3724           Added documents.
3725         * genfonts/.deps, tests/.deps: Removed some more files that don't belong
3726           in CVS
3727         * configure, freeglut-1.3/Makefile, freeglut-1.3/Makefile.in,
3728           genfonts/Makefile, genfonts/Makefile.in, include/GL/Makefile,
3729           include/GL/Makefile.in, include/Makefile, include/Makefile.in,
3730           tests/Makefile, tests/Makefile.in: Removed files checked in in error.
3731         * freeglut-1.3/.deps, freeglut-1.3/.deps/freeglut_callbacks.P,
3732           freeglut-1.3/.deps/freeglut_cursor.P,
3733           freeglut-1.3/.deps/freeglut_display.P,
3734           freeglut-1.3/.deps/freeglut_font.P,
3735           freeglut-1.3/.deps/freeglut_font_data.P,
3736           freeglut-1.3/.deps/freeglut_gamemode.P,
3737           freeglut-1.3/.deps/freeglut_geometry.P,
3738           freeglut-1.3/.deps/freeglut_init.P,
3739           freeglut-1.3/.deps/freeglut_joystick.P,
3740           freeglut-1.3/.deps/freeglut_main.P,
3741           freeglut-1.3/.deps/freeglut_menu.P,
3742           freeglut-1.3/.deps/freeglut_misc.P,
3743           freeglut-1.3/.deps/freeglut_overlay.P,
3744           freeglut-1.3/.deps/freeglut_state.P,
3745           freeglut-1.3/.deps/freeglut_structure.P,
3746           freeglut-1.3/.deps/freeglut_teapot.P,
3747           freeglut-1.3/.deps/freeglut_videoresize.P,
3748           freeglut-1.3/.deps/freeglut_window.P, freeglut-1.3/Makefile,
3749           freeglut-1.3/Makefile.in: Initial revision
3750         * ., AUTHORS, COPYING, ChangeLog, INSTALL, Makefile.am, NEWS, README,
3751           TODO, acconfig.h, aclocal.m4, configure, configure.in, freeglut-1.3,
3752           freeglut-1.3/Makefile.am, freeglut-1.3/freeglut_callbacks.c,
3753           freeglut-1.3/freeglut_cursor.c, freeglut-1.3/freeglut_display.c,
3754           freeglut-1.3/freeglut_font.c, freeglut-1.3/freeglut_font_data.c,
3755           freeglut-1.3/freeglut_gamemode.c, freeglut-1.3/freeglut_geometry.c,
3756           freeglut-1.3/freeglut_init.c, freeglut-1.3/freeglut_joystick.c,
3757           freeglut-1.3/freeglut_main.c, freeglut-1.3/freeglut_menu.c,
3758           freeglut-1.3/freeglut_misc.c, freeglut-1.3/freeglut_overlay.c,
3759           freeglut-1.3/freeglut_state.c, freeglut-1.3/freeglut_structure.c,
3760           freeglut-1.3/freeglut_teapot.c, freeglut-1.3/freeglut_videoresize.c,
3761           freeglut-1.3/freeglut_window.c, freeglut-1.3/templates,
3762           freeglut-1.3/templates/cpp_template,
3763           freeglut-1.3/templates/header_template, freeglut.dsw,
3764           freeglut.kdevprj, freeglut.lsm, freeglut13.dsp, freeglut13.plg,
3765           genfonts, genfonts/.deps, genfonts/.deps/genfonts.P,
3766           genfonts/.deps/genstroke.P, genfonts/Makefile, genfonts/Makefile.am,
3767           genfonts/Makefile.in, genfonts/Roman.src, genfonts/Roman_M.src,
3768           genfonts/genfonts.c, genfonts/genstroke.c, include, include/GL,
3769           include/GL/Makefile, include/GL/Makefile.am, include/GL/Makefile.in,
3770           include/GL/freeglut.h, include/GL/freeglut_internal.h,
3771           include/Makefile, include/Makefile.am, include/Makefile.in,
3772           install-sh, mkinstalldirs, stamp-h, stamp-h.in, tests, tests/.deps,
3773           tests/.deps/one.P, tests/Makefile, tests/Makefile.am,
3774           tests/Makefile.in, tests/one.c: Initial revision
3775