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