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