Fixed bug #1087642 (glutDeviceGet(GLUT_DEVICE_KEY_REPEAT) unimplemented).
[freeglut] / ChangeLog
1 Changes to Freeglut:
2
3 Before and on October 22, 2002:
4
5 (1) Many trivial changes (changing floating-point numbers to integers, for example) to reduce the number of compiler warnings
6
7 (2) Removing "strlen" calls from for-loop headers to make things execute ever-so-slightly faster
8
9 (3) Slight changes to the "glutSolidSphere" and "glutWireSphere" functions to reduce the number of calls to the sine and cosine functions and otherwise make it slightly more efficient
10
11 (4) Added wire and solid torus, wire and solid dodecahedron, wire and solid octahedron, wire and solid tetrahedron, and wire and solid icosahedron
12
13 (5) Fixed a bug by which the GLUT menu now draws even when nothing else is happening in the window
14
15 (6) Fixed a bug by which freeglut now tracks which window text is being entered into
16
17 (7) Added code to adjust for the thickness of the window borders and header bar when resizing and repositioning a window
18
19 October 23, 2002:
20
21 (8) Added a window destroy callback for freeglut to call the application when a window is closed.  Made freeglut call "exit" if there is no window destroy callback.
22
23 October 24, 2002:
24
25 (8b)  Also started working on the code to implement the other behaviors when the user clicks on the "x" on the window header bar.
26
27 (9) Added the "glutSetOption" function, the "GLUT_ACTION_ON_WINDOW_CLOSE" enumeration, and its allowed values
28
29 (10) Added code to check whether a window is a subwindow in the reposition and reshape functions.  If it is a subwindow, do not adjust the position and size for the window border.
30
31 (11) Added code to fix the drawing of subwindows inside of windows.  The Windows implementation uses "GetWindowRect" which uses coordinates relative to the screen corner, not the parent window corner.
32
33 (12) Modified the code to open a window so that the freeglut window now matches the GLUT window.
34
35 (13) Added an ugly hack to the main loop function to call each window's visibility callback before jumping into the main loop.  This fixes the behaviour of several of the demo programs.
36
37
38
39 *******************************************************************************************
40 * Sent a copy of the files to Steve Baker 10/24/02.
41 *******************************************************************************************
42
43 (14) Reworked the "freeglut_font.c" file pretty thoroughly to speed things up a bit, to add the "glutStrokeString" function, and to make the "glutStrokeLength" function return an accurate value for long strings.  Also allowed the string functions to handle character strings containing carriage returns.
44
45 (15) Moved the "fgState" structure initialization in "freeglut_init.c" out of "fgInitialize" to set them at compile time.  Also added it to "fgDeinitialize" to reset the state.
46
47 (16) Recoded a bit in "glutInit" to speed things up slightly
48
49 (17) Added "#pragma warning ( once: 4305 )" directives to the stroke font files so that I don't get 4000 compiler warnings about assigning double precision constants to single precision variables
50
51 (18) Added a state enumeration (initializing, running, stopping) and flag to the "fgState" structure.  Modified the window closure and main loop code to use the enumeration instead of local variables.
52
53 (19) Fixed the "glutPositionWindow" so that if you get and retrieve the window position twenty times in a row the window won't slide down the screen.
54
55 (20) Recoded the "glut*Cone" functions so that they have normals on the curved surface and so that the "base" argument is really the radius of the base of the cone.
56
57 (21) Added code to render a rhombic dodecahedron in the geometry library.
58
59 (22) Started work on a "glutInitDisplayString" function.  I have provided a framework; I will need some serious help in interpreting the results.
60
61 (23) Modified the "fgDisplayMenu" so that the matrix mode is GL_MODELVIEW instead of GL_PROJECTION when execution returns to its calling function.  I have no idea why, but this fixes some display problems in some of the demos.  Part (or all) of the display was blanking out when the user brought up a menu.
62
63 (24) Added four "pragma comment" lines to "freeglut.h" so that freeglut will automatically (under Windows) include "winmm.lib", "opengl32.lib", "glu32.lib", and "freeglut.lib".  This way the application doesn't have to do this by hand.
64
65 (25) Fixed the window positioning code so that if the border is going to extend above the top of the screen, it gets set to the top of the screen.
66
67 (26) Added right-arrows to menu entries which have submenus.  Also modified the submenu position so that it comes down to the right or to the left of the parent menu.
68
69 (27) Recoded a good bit of the menu processing to make the menus behave more like GLUT menus.
70
71 *******************************************************************************************
72 * Sent a copy of the files to Steve Baker 10/31/02.  Also posted these on the reflector.
73 *******************************************************************************************
74
75 (28) Added parentheses to the Windows version of setting the "State.Modifiers" to allow for precedence of operators.  Also modified the code so that it follows the "getKeyState" return value specification.
76
77 (29) Made the window event handler check for the existence of a window for all messages except the "create" message
78
79 (30) Changed the order of events in the window closure function so that the window would still be in the windows structure when the closure message to Windows was sent.
80
81 (31) Made some more changes to the window closure code so that it works from both clicking on the "x" and from a "glutDestroyWindow" call
82
83 *******************************************************************************************
84 * Sent a copy of the files to Steve Baker 10/31/02 as an update.  Also posted these on the reflector.
85 *******************************************************************************************
86
87 (32) Added "glutLeaveMainLoop" function.
88
89 (33) Added "glutMainLoopEvent" function.  This processes a single iteration through the "glutMainLoop" and is (theoretically) usable for re-entrant GLUT code.
90
91 (34) Implemented the "WM_KEYUP" and "WM_SPECIALKEYUP" callbacks in the Windows version.
92
93 (35) Added normals to the "glutWireCube" function
94
95 (36) Recoded "glutGetExtension" to remove a <Steve, cover your eyes> "goto" statement </Steve, cover your eyes> from the code.
96
97 (37) Marked the "glutSetKeyRepeat" function as deprecated.
98
99 (38) Implemented most of the Windows version of the "fghGetConfig" function.
100
101 *******************************************************************************************
102 * Took up the project again November 19.
103 *******************************************************************************************
104
105 (39) Added two missing characters to each of the bitmapped fonts.
106
107 (40) Added "glutSierpinskiSponge" to the geometry file.  I can take it out if people object.
108
109 (41) Added a linked list of windows to close so that if you destroy a window from within its callback the program won't terminate on error.
110
111 (42) Added a call to "free" in the joystick code so we wouldn't have a memory leak.  Also fixed another memory leak.
112
113 (43) Fixed the bitmapped Helvetica 12 and Helvetica 18 fonts so they now match the GLUT fonts.
114
115 *******************************************************************************************
116 * Sent the files to Don Heyse on November 27 for inclusion in CVS.
117 *******************************************************************************************
118
119 (44) Fixed the other bitmapped fonts so they now match the GLUT fonts.  There are some differences in the placement of the bit patterns within the characters, but the greatest difference is only a pixel or two.
120
121 (45) Added DLL capability.  Changed the names of the outputs so that the static library is "freeglut_static.lib" and the names of the DLL file and its interface file are "freeglut.dll" and "freeglut.lib".
122
123 (46) Moved the "freeglut_internal.h" file from the public include directory to the private source code directory.
124
125 (47) Split the "freeglut.h" file into a "glut.h" file that is compatible with GLUT and a "freeglut_ext.h" file that contains the new extensions.
126
127 *******************************************************************************************
128 * Changes starting in May 2003
129 *******************************************************************************************
130
131 (48) Changed "freeglut_main.c" to allow the Windows version to pass the mouse position to the keystroke callbacks
132
133 (49) Changed "freeglut_main.c" in the Unix section to move the call to find the event's window to before the "switch" statement.
134
135 (50) Changed "freeglut_main.c" in the Unix section to modify the window closure sequence of events slightly.
136
137 (51) Changed "freeglut_state.c" so the "glutGet" calls with window position and size don't move the windows down and to the right one pixel.
138
139 (52) Implement single-buffered rendering (or its emulation) in Windows.
140
141 (53) Implement Eero Pajarre's "GLUT_ICON" code.
142
143 (54) Fixes for the window positioning problem.
144
145 (55) Fixed a couple of compiler warnings and other bugs. Changed "freeglut_main.c" to remove a compiler warning. Changed "freeglut_structure.c" to set the current window before calling the window closure callback.
146
147
148 *******************************************************************************************
149 * Changes on 17-19 June 2003
150 *******************************************************************************************
151
152 (56) Added glutGetProcAddress()
153
154 (57) Added GLUT_FPS env var.
155
156 (58) Implemented Aleksandar Donev's user data changes:  added user data fields to window and menu structures and implemented functions to get and set them
157
158 (59) Added a "MenuDestroy" callback which sets a function that "freeglut" calls when a menu is destroyed.
159
160
161
162 *******************************************************************************************
163 * Changes on 20 June 2003
164 *******************************************************************************************
165
166 (60) Added autogen.sh (#30 from todo.txt)
167
168 (70) Updated aclocal.m4 with aclocal 1.7.3 (was created with aclocal 1.5)
169
170 (71) Changed all references to the 'freeglut-1.3' directory to 'src', copied 'freeglut-1.3' to 'src' and added all files to the repository (TODO #34).
171
172
173 *******************************************************************************************
174 * Changes on 24 June 2003
175 *******************************************************************************************
176
177 (80) Fixed autogen.sh and removed aclocal.m4
178
179 (81) Added 'freeglut.kdevelop' (Gideon [Kdevelop 3.0]) project file
180
181
182 *******************************************************************************************
183 * Changes on 24 June 2003
184 *******************************************************************************************
185
186 (82) Added 'freeglut_ext.c' to the project files 'freeglut.dsp' and 'freeglut_static.dsp' (New list #10)
187
188
189 *******************************************************************************************
190 * Changes on 27 June 2003
191 *******************************************************************************************
192
193 (83) Now installs freeglut_ext.h and glut.h to /usr/include/GL (was missing before)
194
195
196 *******************************************************************************************
197 * Changes on 01 July 2003
198 *******************************************************************************************
199
200 (84) Fixed the 'ptr + len' problem in freeglut_misc.c:90
201
202
203 *******************************************************************************************
204 * Changes on 02 July 2003
205 *******************************************************************************************
206
207 (85) Removed genfonts/genstrokes code, updated configure.in and Makefile.in
208
209 (86) Moved tests/one.c into progs/demos/One/one.c, updated configure.in and Makefile.in
210
211 (87) Removed tests directory
212
213
214 *******************************************************************************************
215 * Changes on 03 July 2003
216 *******************************************************************************************
217
218 (88) Removed unused char *ptr from freeglut_misc.c
219
220 *******************************************************************************************
221 * Changes on 17 July 2003
222 *******************************************************************************************
223
224 (89) Changed the overlay (freeglut_state.c:662) to return FALSE, as it's not implemented yet.
225
226 (90) Applied John F. Fay's fixes to freeglut.dsp and freeglut_static.dsp
227
228
229 *******************************************************************************************
230 * Changes on 21 July 2003
231 *******************************************************************************************
232
233 (91) src/Makefile.am:38  Changed versioning to 11:0:8 thanks to Bernhard Kaindl
234
235
236 *******************************************************************************************
237 * Changes on 22 July 2003
238 *******************************************************************************************
239
240 (92) freeglut.lsm:3  Removed 'beta' label for next release, thanks to Bernhard Kaindl.
241
242
243 *******************************************************************************************
244 * Changes on 23 July 2003
245 *******************************************************************************************
246
247 (93) doc/Makefile.am:4  Removed trailing backslash and added an empty last line
248
249 (94) src/freeglut_window.c  Windowing fixes from John F.
250
251
252 *******************************************************************************************
253 * Changes on 23 July 2003
254 *******************************************************************************************
255
256 (95) src/freeglut_initial.c:91  Added check for SOLARIS OS (Dave Reed)
257
258 (96) src/freeglut_window.c:551  Removed extra carriage return for Windows users (John F. Fay)
259
260
261 *******************************************************************************************
262 * Changes on 05 August 2003
263 *******************************************************************************************
264
265 (97) src/freeglut_main.c:816 and :1571, set the current window (John F. Fay)
266
267 (98) src/Makefile.am:34 Added mwmborder.c
268
269 (99) src/freeglut_window.c:67  Removed #included "mwmborder.c"
270
271 *******************************************************************************************
272 * Changes on 10 August 2003
273 *******************************************************************************************
274
275 (100) GameMode fixes: src/freeglut_gamemode.c src/freeglut_internal.h src/freeglut_window.c
276
277   src/freeglut_gamemode.c:
278      fghRememberState():     remember original XFree86 ViewPort
279      fghRememberState():     remember original pointer position
280      fghRestoreState():      restore  original pointer position
281      fghRestoreState():      restore  original XFree86 ViewPort
282      fghChangeDisplayMode(): fix glutGameModeGet(GLUT_GAME_MODE_POSSIBLE)
283      fghChangeDisplayMode(): remove superflous attempt to change ViewPort
284      glutEnterGameMode():    move special XMoveWindow() from generic code here
285      glutEnterGameMode():    call XSync() to avoid races with XPointer calls
286      glutEnterGameMode():    call to XWarpPointer() to ensure that the pointer is grabbed
287      glutEnterGameMode():    wait until window is viewable to avoid exit on XSetInputFocus
288      glutEnterGameMode():    move decorations away to fix fullscreen w/ max resolution
289
290   src/freeglut_internal.h:
291      struct tagSFG_Display:  add fields for saving viewport and pointer position
292
293   src/freeglut_window.c:
294      fgOpenWindow():         remove obsolete special case for GameModeEnter()
295
296 *******************************************************************************************
297 * Changes up to September 12, 2003
298 *******************************************************************************************
299
300 (101) Include files:  Underscores added to the defined constants which prevent multiple inclusions
301
302 (102) String functions:  Arguments changed from "char *" to "unsigned char *" for compatibility with GLUT
303
304 (103) Added several explicit type casts to allow compilation with "Dev C++" compiler
305
306 (104) Quite a bit of debugging of the menus in their menu windows
307
308 (105) Removed "glib" dependency from joystick code; now it compiles under FreeBSD
309
310 (106) Removed the "fgCleanUpGlutsMess" function because it was redundant
311
312
313 *******************************************************************************************
314 * Changes on September 13, 2003
315 *******************************************************************************************
316
317 (107) Repaired DOS line endings in the MSVC project and workspace files
318
319 (108) Fixed some relative paths in the MSVC demo project files
320
321 (109) Fixed all the demo makefiles to ensure they compiled properly; included minor changes to some of the sources.
322
323 (110) Fixed compiliation of freeglut_joystick.c on FreeBSD
324
325 *******************************************************************************************
326 * Changes through September 24, 2003
327 *******************************************************************************************
328
329 (111) Fixed busy-wait bug in freeglut; now sleeps when there's nothing to do.
330
331 (112) GLUT_SINGLE properly supported.
332
333 (113) progs/demos/Fractals_random works.
334
335 *******************************************************************************************
336 * Freeglut 2.0.0 Released on  September 29, 2003!
337 *******************************************************************************************
338
339 *******************************************************************************************
340 * Changes on October 1, 2003
341 *******************************************************************************************
342
343 (114) Support for more than 3 mouse-buttons (this allows 3+scroll-wheel to
344 workin X, for example).
345
346 (115) Added 3rd party patch to make joystick code work on NetBSD (untested)
347 and on older versions of FreeBSD (also untested)
348
349 *******************************************************************************************
350 * Changes on October 3, 2003
351 *******************************************************************************************
352
353 (116) Tweaking for the menu behavior on Linux regarding mice, etc. - John Fay
354
355 *******************************************************************************************
356 * Changes on October 6, 2003
357 *******************************************************************************************
358
359 (117) freeglut_menu.c:328 Fix submenu triangle (John Fay)
360
361 *******************************************************************************************
362 * Changes on October 8, 2003
363 *******************************************************************************************
364
365 (118) freeglut_menu.c:217,519,532: Fix menus to stay in the window (John Fay)
366
367 (119) Fixed menu callbacks to set the current window.
368
369 (120) Numerous GLUT-alikeness corrections made to the menus (UNIX_X11
370 freeglut menus now look more like old UNIX/X11 GLUT menus).  Placement
371 and highlighting of menus is greatly improved as well, and (at least
372 at compile-time) it is now easy to change fonts and colors for menus.
373
374 (121) Fixed CreateNotify on X11 to act like ConfigureNotify.  This
375 helps subwindows in freeglut behave more like top-level windows.  (In
376 old GLUT, they behaved essentially the same, so we try to reproduce
377 that here.)
378
379 *******************************************************************************************
380 * Changes on October 9, 2003
381 *******************************************************************************************
382
383 (122) Minor glutInit*() quibbles in some of the demos.  Also applied a
384 change from John so that the affine-transform demos would work even if
385 they couldn't find their default set of transforms or the one named on
386 the command-line (a simpler one than even the default is built in).
387
388 *******************************************************************************************
389 * Changes on October 11, 2003
390 *******************************************************************************************
391
392 (123) Disallow people to pass NULL in for glutDisplayFunc().
393
394 (124) More menu fixes from John.
395
396 (125) Check the memory allocation of timers.
397
398 (126) Some code style/readability issues.
399
400 *******************************************************************************************
401 * Changes on October 11, 2003
402 *******************************************************************************************
403
404 (127) Fleshed out all missing cursor types on NetBSD (UNIX_X11) for the
405 glutSetCursor() call.  GLUT_CURSOR_NONE still required work.  Fixes
406 included: Adding numerous types required by GLUT but previously missing
407 in freeglut, reversing the left/right glyphs, and some just-plain-wrong
408 glyphs corrected.
409
410 *******************************************************************************************
411 * Changes on October 13, 2003
412 *******************************************************************************************
413
414 (128) Removed obsolete hack (or ill-conceived dream) of fgDisplayCursor().
415
416 (129) Modified the the fractal demos so that they don't clear/redraw quite
417 so often.
418
419 (129) Code readability/style issues.
420
421 *******************************************************************************************
422 * Changes on October 14, 2003
423 *******************************************************************************************
424
425 (130) More style issues.
426
427 *******************************************************************************************
428 * Freeglut 2.0.1 Released on 23 October, 2003!
429 *******************************************************************************************
430
431 *******************************************************************************************
432 * Changes on October 26, 2003
433 *******************************************************************************************
434
435 (131) Made freeglut know the program's name (fetch from main()'s argv[0]).
436
437 (132) Moved idle callback out of glutMainLoopEvent().
438
439 (133) Committed Nigel's fix to make the joystick set the current window before
440 invoking the callback.  (Completes the closeout of an open bug report,
441 once verified.)
442
443 (134) Added some error-checking of memory allocations.
444
445 (135) More style issues.
446
447 *******************************************************************************************
448 * Changes on October 27, 2003
449 *******************************************************************************************
450
451 (136) Partially unified the UNIX_X11 and WIN32 branches of glutMainLoopEvent()
452
453 (137) Updated comments, other style issues.  Check for some NULL pointers.
454
455 *******************************************************************************************
456 * Changes on October 28, 2003
457 *******************************************************************************************
458
459 (138) More style issues.
460
461 (139) Mouse-wheel support added for WIN32.  API extension generally
462 added to freeglut.
463
464 *******************************************************************************************
465 * Changes on October 29, 2003
466 *******************************************************************************************
467
468 (140) Fixed a bug in fgWarning()/fgError().  Added range-check to
469 glutSetKeyRepeat().
470
471 (141) More style issues.
472
473 (142) Removed bogus references to "Linux" in freeglut_state.c.
474 The references should have properly been to UNIX and/or X11.  GNU/LINUX
475 emulates UNIX, and X11 is the windowing system that runs on most graphics-
476 capable UNIX systems (including most GNU/LINUX systems).  freeglut should
477 run on any sufficiently UNIX-like system with OpenGL and X11 (or at least
478 XFree86's implementation of X11).
479
480 (143) #include <sys/param.h> on the BSDs so that we can check the system
481 version number at compile-time.
482
483 *******************************************************************************************
484 * Changes on October 30, 2003
485 *******************************************************************************************
486
487 (144) Numerous small fixes w.r.t. mouse-wheels on WIN32.
488
489 (145) More style issues.
490
491 *******************************************************************************************
492 * Changes on October 31, 2003
493 *******************************************************************************************
494
495 (146) More style issues.
496
497 (147) Converted an error-check from an assert() to an if().
498
499 (148) Removal of the last ASCII TAB character from src/* files.  This
500 conversion process ensures that the formatting appears more consistant
501 for everyone.  (TABs can vary in their expansion from one system to
502 another).
503
504 *******************************************************************************************
505 * Changes on November 3, 2003
506 *******************************************************************************************
507
508 (149) X11 mousewheel fixes.
509
510 (150) Yet more style issues.
511
512 (151) Added a case for {MapNotify} events in X11.
513
514 (152) Re-(?)deleted 3 files from CVS, per John's request.  These were
515 obsolete: freeglut13.dsp, freeglutdll.dsp, freeglutstatic.dsw
516
517 (153) Marked a few pointer/int conversion warnings.  (I think that they
518 only manifest for me on my AMD64 system, but they seem fairly harmless
519 so I didn't try to fix them.)
520
521 (154) Memory-leak fix from John.
522
523 *******************************************************************************************
524 * Changes on Novembber 4, 2003
525 *******************************************************************************************
526
527 (155) More style issues.
528
529 (156) Removed G_LOG_DOMAIN junk, per mailing list discussion.
530
531 (157) Added memory-leak detection support (WIN32) to a couple of the
532 demos, and fixed at least one memory leak in the process.  Also
533 converted Fractals_random to double-precision to avoid some compiler
534 warnings.
535
536 (158) Stripped CRs from fractals_random.c.
537
538 (159) Fixed two bugs: Execution state was improperly set in the end
539 of glutMainLoop(), and {ButtonPress} (an X11 constant) was used where
540 the flag-variable {pressed} (in UNIX_X11 branch of glutMainLoop())
541 should have been used.
542
543 (160) Pointer-check before deallocation in the menu code.
544
545 *******************************************************************************************
546 * Changes on November 5, 2003
547 *******************************************************************************************
548
549 Remember, remember,
550 the 5th of November.
551 Gunpowder, treason and plot!   (Bacon?)
552
553 I see no reason
554 why gunpowder treason
555 should ever be forgot.         (Shakespeare?)
556
557 *******************************************************************************************
558 * Changes on November 6, 2003
559 *******************************************************************************************
560
561 (161) Fractals_random demo now includes mouse support---including mouse-
562 wheel.
563
564 (162) Yet more fixes to the mouse wheel support in WIN32.
565
566 (163) Converted freeglut to use an array to store window callbacks,
567 rather than a struct.  This lets us loop over the array to fill it with
568 NULL pointers in order to clear the callbacks.  (With a struct, we were
569 reduced to either a ton of assignments---easy to miss one!---or memset(),
570 which technically is not a legal way to fill a region with NULL pointers
571 because the bit-pattern of a NULL pointer is not necessarily defined to
572 be all-zero bits.)  This change also on the one hand provides macros
573 to simplify most proper use of the callbacks (even simpler than with
574 the struct form), while also making it irritating enough to bypass the
575 macros that (it is hoped) abuse will be harder.  (E.g., the invocation
576 macros set the current-window.  At least two bugs in the past occurred
577 because callbacks were not setting the current window before invoking the
578 client.)  See 
579 https://sourceforge.net/mailarchive/message.php?msg_id=6467923 for more
580 details.
581
582 (164) Yet more style issues.  (You thought I'd forgotten about that?)
583
584 *******************************************************************************************
585 * Changes on November 7, 2003
586 *******************************************************************************************
587
588 (165) Mouse-wheel corrections in X11.
589
590 (166) Style corrections.
591
592 (167) Fixed GLUT_CURSOR_NONE support at long last in NetBSD.  (Should also
593 apply to other X11 based systems, but I can only test NetBSD.)  Also
594 deallocated some resources that glutSetCursor() was allocating in the
595 X server.
596
597 (168) Added {ReparentNotify} (event type 21) case to glutMainLoop().
598
599 (169) Clear window callbacks during window destruction.
600
601 (170) Implement visible/invisible support for WIN32.  (Partial?  No
602 callback added at this time.)
603
604 *******************************************************************************************
605 * Changes on November 8, 2003
606 *******************************************************************************************
607
608 (171) Altered the way that {random} was chosen in the fractals_random.c
609 program, in order to attempt to gain a longer cycle before repeating.
610
611 (172) More style issues.
612
613 *******************************************************************************************
614 * Changes on November 9, 2003
615 *******************************************************************************************
616
617 (173) Added some error-checking to the glutSetCursor() code on my
618 NetBSD (UNIX_X11) system.
619
620 *******************************************************************************************
621 * Changes on November 10, 2003
622 *******************************************************************************************
623
624 (174) Reversed the Fractals_random changes; they were bogus since they
625 assumed that there were always exactly 4 affine transforms to choose
626 from (which is certainly not guaranteed!).  Back to just shifting by
627 10 bits and going modulo the number of transforms.
628
629 *******************************************************************************************
630 * Changes on November 11, 2003
631 *******************************************************************************************
632
633 (175) Retroactively updated the ChangeLog file for all of the commits by
634 myself (rkrolib; a.k.a. Richard Rauch) (at least as visible via on the
635 SourceForge "CVS message board"), summarzing changes for the sake of those
636 who lack both web-browser and CVS access.  Also fixed a numbering error in
637 the log where there were two "(110)" events.  (Plus added (174) from
638 November 10th by memory.)
639
640 (176) Style cleanup to the "one" demo.  (Removal of CRs, TABs, mostly.)
641
642 (177) Changed the "one" demo to do glutInit*() calls before glutInit(),
643 proper.  This allows command-line parameters to override built-in
644 behavior.
645
646 (178) Complete purge of all remaining TABs from freeglut's *.[ch] files.
647 Also verified that (as far as I can tell) all CRs are removed from all
648 files where they do not belong.
649         
650 *******************************************************************************************
651 * Freeglut 2.2.0 RC 1 Released on  December 10, 2003!
652 *******************************************************************************************
653
654 (179) CallbackMaker.dsp, demos.dsw, shapes.dsp all updated and are
655 packaged with distributions
656
657 (180) Fix for the window sizes on Win32 (Nigel Stewart)
658
659 (181) Disable/enable lighting in the "one.c" demo (John Fay)
660
661 *******************************************************************************************
662 * Freeglut 2.2.0 RC 2 Released on  December 11, 2003!
663 *******************************************************************************************
664
665 *******************************************************************************************
666 * Freeglut 2.2.0 Released on  December 12, 2003!
667 *******************************************************************************************
668
669
670 ***************************************************************************
671 * Changes on Februrary 5, 2004.
672 ***************************************************************************
673
674 (182) With permission from Steve Baker, John Fay imported the latest joystick
675 code from PLIB into freeglut.  This is expected to provide better support
676 joysticks such as USB joysticks.  However, it is largely untested beyond
677 compiling, and likely will require some debugging.
678
679         
680 ***************************************************************************
681 * Changes on Februrary 7, 2004.
682 ***************************************************************************
683
684 (183) Richard Rauch added experimental support for a new feature:
685 GLUT_OFFSCREEN as a rendering mode (as proposed by Nigel Stewart).
686 The intent is that you specify GLUT_OFFSCREEN as a GLUT display mode,
687 and then open a "window" much as you would a regular top-level window.
688 Only UNIX_X11 is supprted at this point, for lack of knowledge.
689
690 *********************************
691 * Ides of March, 2004.
692 *********************************
693
694 (184) Per demands of project owner, offscreen rendering is now removed
695 from freeglut.
696
697 ***************************************************************************
698 * Changes on December 31, 2004.
699 ***************************************************************************
700
701 (185) Fixed bug #1079530 (glutGetProcAddress and geometric objects).
702
703 (186) Fixed bug #1087642 (glutDeviceGet(GLUT_DEVICE_KEY_REPEAT)
704 unimplemented).