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