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