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