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