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