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