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