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