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