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