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