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