source: GTP/trunk/Lib/Illum/GPUObscurancesGT/Libraries/glut-3.7.6-bin/README-win32.txt @ 1648

Revision 1648, 25.8 KB checked in by igarcia, 18 years ago (diff)
Line 
1
2
3                GLUT for Win32 README
4                ---------------------
5
6
7VERSION/INFO:
8
9    This is GLUT for Win32 version 3.7.6 as of Nov 8th 2001.
10    See the COPYRIGHT section for distribution and copyright notices.
11    Send all bug reports and questions for this version of GLUT to
12    Nate Robins [nate@pobox.com].
13
14    For more information about GLUT for Win32, see the web page:
15    www.pobox.com/~nate/glut.html or subscribe to the GLUT for Win32
16    mailing list by sending e-mail to majordomo@perp.com with
17    "subscribe glut" in the body of the message.
18
19    For general information about GLUT, see the GLUT web page:
20    http://reality.sgi.com/opengl/glut3/glut3.html and be sure to
21    check the GLUT FAQ first for any questions that you may have:
22    http://reality.sgi.com/opengl/glut3/glut-faq.html
23
24
25COMPILING/INSTALLATION:
26
27    o  Precompiled versions of the DLL and import library can be
28       found on the GLUT for Win32 web page mentioned above.
29
30    o  Microsoft Developer Studio 6 workspace and project files have
31       been included in the source code distribution.
32       
33       To build the glut dll:
34       First, open Microsoft Developer Studio.
35       Then, select File -> Open Workspace and find the glut.dsw file
36       in the file dialog and double-click on it. 
37       Finally, select Build -> Build glut32.dll.
38       When the build is finished, it will copy:
39       glut32.dll to %WinDir%\System,
40       glut32.lib to $(MSDevDir)\..\..\VC98\lib, and
41       glut.h     to $(MSDevDir)\..\..\VC98\include\GL.
42       
43       Additional workspace files have been included in the progs, test
44       and lib directories to build the progs, tests and libs respectively.
45
46
47BORLAND NOTES:
48
49    From what I understand, Borland supplies a utility that
50    converts Microsoft Visual C++ .libs into Borland compatible
51    files.  Therefore, the best method for Borland users is
52    probably to get the precompiled versions of the library and
53    convert the library.  To create an import library for Borland
54    from the DLLs, use the following command (from a command prompt):
55          IMPLIB glut32.lib glut32.dll
56    If IMPLIB crashes when called this way, try
57          IMPLIB glut32.lib glut32.def
58    using the glut32.def file in this distribution.
59
60
61FORTRAN NOTES:
62
63    Bill Mitchell [william.mitchell@nist.gov] has put considerable
64    effort into getting GLUT to work with different compilers for
65    Fortran 90.  He indicates that you should copy the f90glut.h
66    file to your $(MSDevDir)\..\..\VC98\include\GL directory. 
67    Then, just build GLUT as usual.  The Fortran 90 interface, f90gl,
68    can be obtained at http://math.nist.gov/f90gl and contains
69    installation instructions and usage examples.
70
71
72MISC NOTES:
73
74    o  Overlay support is not implemented, nor are there any plans to
75       implement it in the near future.
76
77    o  To customize the windows icon, you can use the resource name
78       GLUT_ICON.  For example, create an icon named "glut.ico", and
79       create a file called glut.rc that contains the following:
80       GLUT_ICON ICON glut.ico
81       then compile the glut.rc file with the following:
82       rc /r glut
83       and link the resulting glut.res file into your executable
84       (just like you would an object file).
85       Alternatively, you can simply add the glut.rc file to your
86       project if you are using Microsoft Developer Studio.
87
88
89IMPLEMENTATION DEPENDENT DIFFERENCES:
90
91    There are a few differences between the Win32 version of GLUT
92    and the X11 version of GLUT.  Those are outlined here.  Note
93    that MOST of these differences are allowed by the GLUT
94    specification.  Bugs and unsupported features are outlined in
95    the UNSUPPORTED/BUGS section.
96
97    o  glutInit:
98       The following command line options have no meaning (and are
99       ignored) in GLUT for Win32:
100       -display, -indirect, -direct, -sync.
101
102    o  glutInitWindowPosition, glutPositionWindow:
103       Win32 has two different coordinate systems for windows.
104       One is in terms of client space and the other is the whole
105       window space (including the decorations).  If you
106       glutPositionWindow(0, 0), GLUT for Win32 will place the
107       window CLIENT area at 0, 0.  This will cause the window
108       decorations (title bar and left edge) to be OFF-SCREEN, but
109       it gives the user the most flexibility in positioning.
110       HOWEVER, if the user specifies glutInitWindowPosition(0, 0),
111       the window is placed relative to window space at 0, 0.
112       This will cause the window to be opened in the upper left
113       corner with all the decorations showing.  This behaviour is
114       acceptable under the current GLUT specification.
115
116    o  glutSetIconTitle, glutSetWindowTitle:
117       There is no separation between Icon title and Window title
118       in Win32.  Therefore, setting an icon title in Win32 has
119       no effect.
120
121    o  glutSetCursor:
122       As indicated in the GLUT specification, cursors may be
123       different on different platforms.  This is the case in GLUT
124       for Win32.  For the most part, the cursors will match the
125       meaning, but not necessarily the shape.  Notable exceptions
126       are the GLUT_CURSOR_INFO & GLUT_CURSOR_SPRAY which use the
127       crosshair cursor and the GLUT_CURSOR_CYCLE which uses the
128       'no' or 'destroy' cursor in Win32.
129
130    o  glutVisibilityFunc:
131       Win32 seems to be unable to determine if a window is fully
132       obscured.  Therefore, the visibility of a GLUT window is
133       only reflected by its Iconic, Hidden or Shown state.  That
134       is, even if a window is fully obscured, in GLUT for Win32,
135       it is still "visible".
136
137    o  glutEntryFunc:
138       Window Focus is handled differently in Win32 and X.
139       Specifically, the "window manager" in Win32 uses a "click to
140       focus" policy.  That is, in order for a window to receive
141       focus, a mouse button must be clicked in it.  Likewise, in
142       order for a window to loose focus, a mouse button must be
143       clicked outside the window (or in another window).
144       Therefore, the Enter and Leave notification provided by GLUT
145       may behave differently in the Win32 and in X11 versions.
146       There is a viable workaround for this.  A program called
147       "Tweak UI" is provided by Microsoft which can be used to
148       change the focus policy in Win32 to "focus follows mouse".
149       It is available from the Microsoft Web Pages:
150       http://www.microsoft.com/windows/software/PowerToy.htm
151
152    o  glutCopyColormap:
153       GLUT for Win32 always copies the colormap.  There is never
154       any sharing of colormaps.  This is probably okay, since
155       Win32 merges the logical palette and the physical palette
156       anyway, so even if there are two windows with totally
157       different colors in their colormaps, Win32 will find a
158       (hopefully) good match between them.
159
160    o  glutIdleFunc + menus:
161       The glut idle function will NOT be called when a menu is
162       active.  This causes all animation to stop when a menu is
163       active (in general, this is probably okay).  Timer
164       functions will still fire, however.  If the timer callback
165       draws into the rendering context, the drawing will not show
166       up until after the menu has finished, though.
167
168
169UNSUPPORTED/BUGS:
170
171    o  glutAttachMenu:
172       Win32 only likes to work with left and right mouse buttons.
173       Especially so with popup menus.  Therefore, when attaching
174       the menu to the middle mouse button, the LEFT mouse button
175       must be used to select from the menu.
176
177    o  glutSpaceball*, glutButtonBox*, glutTablet*, glutDials*:
178       None of the special input devices are supported at this
179       time.
180
181    o  When resizing or moving a GLUT for Win32 window, no updating
182       is performed.  This causes the window to leave "tracks" on
183       the screen when getting bigger or when previously obscured
184       parts are being revealed.  I put in a bit of a kludgy
185       workaround for those that absolutely can't have the weird
186       lines.  The reshape callback is called multiple times for
187       reshapes.  Therefore, in the reshape callback, some drawing
188       can be done.  It should probably be limited to a color buffer
189       clear.
190
191    o  The video resizing capabilities of GLUT 3.3+ for X11 is
192       currently unimplemented (this is probably ok, since it
193       really isn't part of the spec until 4.0).  I doubt that
194       this will ever be part of GLUT for Win32, since there is no
195       hardware to support it.  A hack could simply change the
196       resolution of the desktop.
197
198
199CHANGES/FIXES:
200
201    (Nov 8, '01)
202    x  Released 3.7.6
203
204    (Nov 8, '01)
205    x  Changed fullscreen mode from TOPMOST back to simply TOP, since
206       (it turns out) many people use windows atop a GLUT window.
207
208    (Nov 8, '01)
209    x  Added code to prevent CPU spiking when no idle function is
210       registered.  Otherwise, if an idle function is registered, spike
211       CPU so that the idle function gets all the attention it needs and
212       if this is a problem on the program side, the user can stick a
213       sleep() in their idle function.  I believe that this strikes the
214       best balance betweeen GLUT being fast, and also being "nice" to
215       other processes.  Thanks to James Wright for reporting this bug.
216
217    (Nov 8, '01)
218    x  Fixed bug in motion callback handler which wasn't setting the
219       current window, so multiple window apps (e.g., any GLUI app)
220       wouldn't get the callback correctly.
221
222    (Oct 4, '01)
223    x  Fixed bug in glutEnterGameMode() that caused new windows to not
224       be in "fullscreen" mode, so they got window decorations.
225
226    (Oct 4, '01)
227    x  Fixed bug in glutEnterGameMode() that caused new windows to not
228       be in "fullscreen" mode, so they got window decorations.
229
230    (Oct 3, '01)
231    x  Fixed bug in getVisualInfoFromString(): visuals not reloaded on
232       display mode change.  Reload visuals each time they are queried.
233       This fixes a problem with Win32 because the list of availabe Visuals
234       (Pixelformats) changes after a change in displaymode. The problem
235       occurs when switching to gamemode and back.  Thanks to Michael
236       Wimmer for pointing this out & providing the fix.
237
238    (Oct 3, '01)
239    x  Fixed bug in XGetVisualInfo(): pixelformats enumerated incorrectly.
240       Passing 0 as a pixelformat index to DescribePixelFormat gives
241       unpredictible results (e.g., this fails on the Voodoo opengl32.dll
242       and always reports 0 as the last available pixelformat index).
243       Thanks to Michael Wimmer for pointing this out & providing the fix.
244
245    (Oct 3, '01)
246    x  Fixed bug in glXGetConfig(): pixelformats enumerated incorrectly.  The
247       test was OpenGL support OR draw to window, but should be AND.  Thanks
248       to Michael Wimmer for pointing this out & providing the fix.
249
250    (Sep 28, '01)
251    x  Fixed glutChangeToSubMenu()/glutChangeToMenuEntry() bug where if you
252       went back and forth between a submenu and a plain entry, the submenu
253       wouldn't be updated properly.
254
255    (Sep 28, '01)
256    x  glutSetIconTitle() is now a nop.
257
258    (Sep 28, '01)
259    x  glutFullScreen() now sets the window as TOPMOST, therefore, the
260    window will always be on top (this essentially disables alt-tabbing).
261
262    (Sep 28, '01)
263    x  The key repeat ignore flag is now honored correctly.
264
265    (Sep 28, '01)
266    x  Key presses are now reported more accurately and fully, in
267       particular, modified up events (i.e., SHIFT-2) are now reported
268       correctly.
269
270    (Sep 28, '01)
271    x  Subwindows nested arbitrarily deep get their keyboard callbacks
272       correctly now.
273
274    (Sep 28, '01)
275    x  Major rewrite of the window procedure code to clean it up and make
276       way for other bug fixes.
277
278    (Sep 23, '01)
279    x  Fixed noof example program to use RAND_MAX instead of assumed
280       max of 2147483647.0.  (Now it looks _much_ better!)
281
282    (Sep 22, '01)
283    x  Fixed sunlight example program.  globe.raw data file was corrupt,
284       added a new one.
285
286    (Sep 22, '01)
287    x  Fixed zcomposite example program to print message if overlay
288       support is not found (instead of crashing).
289
290    (Jan 22, '01)
291    x  Fixed malloc(0) bug in Win32 version of XGetVisualInfo.  Thanks
292       to Kekoa Proudfoot for bringing this to my attention.
293
294    (Dec 12, '00)
295    x  Added data files for the advanced & advanced97 programs.
296
297    (Dec 12, '00)
298    x  Added Developer Studio 6 project and workspace files for pretty
299       much everything (the stuff left out was usually unix specific).
300
301    (Dec 7, '00)
302    x  Fixed several compilation problems & corrupt files.  Thanks to
303       Alexander Stohr for bringing these to my attention and providing
304       detailed fixes.
305
306    (Dec 6, '00)
307    x  Fixed compiler support for lcc.  Thanks to Gordon for bringing
308       this to my attention and debugging fixes.
309
310    (Nov 8, '00)
311    x  Fixed submenu problem (sometimes the menu callback was not
312       called for valid items).  Thanks to Michael Keeley.
313
314    (Oct 16, '00)
315    x  Corrected corrupt duck.iv file.  Thanks to Jon Willeke for finding
316       this problem.
317
318    (Sept 27, '00)
319    x  Fixed bug in processWorkList that could cause a hang.  Thanks to
320       Bill Volz & Daniel Azuma.
321
322    (Sept 26, '00)
323    x  Added mui DLL project file (thanks to DMWeldy@ugsolutions.com).
324
325    (Sept  9, '00)
326    x  Fixed Delete key bug (crash when no keyboard callback was
327       registered, but a special key callback was).  Thanks to
328       Kent Bowling (kent_bowling@hotmail.com) for finding this bug.
329
330    (May 18, '00)
331    x  Fixed subwindow keyboard callbacks.
332
333    (May 22, '97)
334    o  Menus don't work under Windows 95
335    x  Fixed!  Added a unique identifier to each menu item, and a
336       search function to grab a menu item given the unique identifier.
337
338    (May 21, '97)
339    o  A few minor bug fixes here and there.
340    x  Thanks to Bruce Silberman and Chris Vale for their help with
341       this.  We now have a DLL!
342
343    (Apr 25, '97)
344    o  DLL version of the library is coming (as soon as I figure out
345       how to do it -- if you know, let me know).
346    x  Thanks to Bruce Silberman and Chris Vale for their help with
347       this.  We now have a DLL!
348
349    (Apr 24, '97)
350    x  Added returns to KEY_DOWN etc messages so that the F10 key
351       doesn't toggle the system menu anymore.
352
353    (Apr 7, '97)
354    o  Palette is incorrect for modes other than TrueColor.
355    x  Fixed this by forcing a default palette in modes that aren't
356       Truecolor in order to 'simulate' it.  The applications
357       program shouldn't have to do this IMHO, but I guess we
358       can't argue with Microsoft (well, we can, but what good
359       will it do?).
360
361    (Apr 2, '97)
362    x  Added glut.ide file for Borland users.
363
364    (Apr 2, '97)
365    x  Fixed a bug in the WM_QUERYNEWPALETTE message.  Wasn't
366       checking for a null colormap, then de-ref'd it.  Oops.
367
368    (Mar 13, '97)
369    o  glutTimerFunc:
370       Currently, GLUT for Win32 programs busy waits when there is
371       an outstanding timer event (i.e., there is no select()
372       call).  I haven't found this to be a problem, but I plan to
373       fix it just because I can't bear the thought of a busy wait.
374    x  Added a timer event and a wait in the main loop.  This fixes
375       the CPU spike.
376
377    (Mar 11, '97)
378    x  Fixed subwindow visibility.  The visibility callback of
379       subwindows wasn't being called, now it is.
380
381    (Mar 11, '97)
382    o  glutGetHDC, glutGetHWND:
383       In order to support additional dialog boxes, wgl fonts, and
384       a host of other Win32 dependent structures, two functions
385       have been added that operate on the current window in GLUT.
386       The first (glutGetHDC) returns a handle to the current
387       windows device context.  The second (glutGetHWND) returns
388       handle to the current window.
389    x  Took these out to preserve GLUT portability.
390
391    (Mar 11, '97)
392    x  Fixed the glutWarpPointer() coordinates.  Were relative to
393       the screen, now relative to window (client area) origin
394       (which is what they're supposed to be).
395
396    (Mar 11, '97)
397    o  glutCreateMenu, glutIdleFunc:
398       Menu's are modal in Win32.  That is, they don't allow any
399       messages to be processed while they are up.  Therefore, if
400       an idle function exists, it will not be called while
401       processing a menu.
402    x  Fixed!  I've put in a timer function that fires every
403       millisecond while a menu is up.  The timer function handles
404       idle and timer events only (which should be the only
405       functions that are firing when a menu is up anyway).
406
407    (Mar 7 '97)
408    x  Fixed minor bugs tracked down by the example programs.
409
410    (Mar 6, '97)
411    x  Merged 3.3 GLUT for X11 into 3.2 GLUT for Win32.  New code
412       structure allows for EASY merging!
413
414    o  In Win32, the parent gets the right to set the cursor of
415       any of its children.  Therefore, a child windows cursor
416       will 'blink' between its cursor and its parent.
417    x  Fixed this by checking whether the cursor is in a child
418       window or not.
419
420    (Feb 28 '97)
421    o  On initial bringup apps are getting 2 display callbacks.
422    x  Fixed by the Fev 28 re-write.
423
424    o  Some multiple window (not subwindow) functionality is messed up.
425       See the sphere.exe program.
426    x  Fixed by the Feb 28 re-write.
427
428    o  GLUT for Win32 supports color index mode ONLY in a paletted
429       display mode (i.e., 256 or 16 color mode).
430    x  Fixed this in the re-write.  If you can get a color index
431       visual (pixel format) you can use color index mode.
432
433    (Feb 28 '97)
434    o  Quite a few bugs (and incompatibilities) were being caused
435       by the structure that I used in the previous port of GLUT.
436       Therefore I decided that it would be best to "get back to
437       the roots".  I re-implemented most of glut trying to stick
438       with the structure layed out by Mark.  The result is a much
439       more stable version that passes ALL (!) (except overlay)
440       the tests provided by Mark.  In addition, this new
441       structure will allow future enhancements by Mark to be
442       integrated much more quickly into the Win32 version.  Also,
443       I'm now ordering the bugs in reverse, so that the most
444       recently fixed appear at the top of the list.
445
446    (9/8/96)
447    o  Changed the glutGetModifiers code to produce an error if not
448       called in the core input callbacks.
449
450    (9/11/96)
451    o  If the alt key is pressed with more than one other modifier key
452       it acts as if it is stuck -- it stays selected until pressed
453       and released again.
454    x  Fixed.
455
456    (9/12/96)
457    o  When a submenu is attached to a menu, sometimes a GPF occurs.
458       Fixed.  Needed to set the submenu before referencing it's members.
459
460    o  Kenny: Also, one little problem, I attached the menu to the
461       right-button, but when the left-button is pressed I detach
462       it to give the right-button new meaning; if I pop-up the menu and I
463       don't want to select anything, like most users, I click off of the
464       menu to make it disappear. When I do this, I get a GLUT error and
465       the program terminates because I am altering the menu attachment
466       from within the button press while the menu is active.
467    x  Fixed.  Needed to finish the menu when the user presses the button,
468       not just when a button is released.
469
470    o GLUT for Win32 emulates a middle mouse button by checking if
471       both mouse buttons are down.  This causes a lot of problems with
472       the menu and other multiple mouse button things. 
473    x  Fixed.  No more middle mouse button emulation.  Perhaps it would
474       be a good idea to emulate the middle mouse button (if not present)
475       with a key?
476
477    (9/15/96)
478    o  Added code to accept a user defined icon.  If no icon is provided,
479       a default icon is loaded.
480
481    (9/19/96)
482    o  Shane: Command line options seem to be screwed up. (9/13)
483    x  Fixed.  The geometry command line was broken, and so was the
484       gldebug command line.
485
486    o  Fixed a bug in the default glut reshape.  It was looking for the
487       parent of the current window and GPF'ing if there wasn't a parent.
488       Put in a check for a parent, and if none is there, use the
489       child.
490
491    o  Idle function sucks up all processor cycles. (9/8/96)
492    x  I don't know if this is avoidable.  If you have a tight rendering
493       loop, it may be that the processor time is going to be sucked up
494       no matter what.  You can add a sleep() to the end of your render
495       loop if you would like to yeild to other processes and you don't
496       care too much about the speed of your rendering loop.  If you have
497       Hardware that supports OpenGL (like a 3Dpro card, or GLint card)
498       then this should be less of a problem, since it won't be rendering
499       in software. (9/11/96)
500
501    o  If a window is fully obscured by another window, the visibility
502       callback is NOT called.  As far as I can tell, this is a limitation
503       of the Win32 api, but a workaround is being searched for. (9/8/96)
504    x  Limitation of the Win32 API
505
506    o  Fixed the entry functions.  They only work if the keyboard focus
507       changes.  Therefore, in most Win32 systems, the mouse must be
508       pressed outside of the window to get a GLUT_LEFT message and
509       then pressed inside the window for a GLUT_ENTERED message.
510
511    o  Alt modifier key doesn't work with keyboard callback. (9/8/96)
512    x  Probably okay, because the glut spec says that these keys can
513       be intercepted by the system (which the alt key is...) (9/11/96)
514
515    (11/17/96)
516    o  glutRemoveMenuItem() not working properly.
517    x  Thanks to Gary (grc@maple.civeng.rutgers.edu) for the fix to
518       this one.
519
520    o  Timer functions are messed up.
521    x  Thanks to Joseph Galbraith for the fix to this one.
522
523    (12/9/96)
524    o  One (minor) difference came up between the X version of glut
525       and the nt one which you should know about. It is not a new
526       problem, and it concerns co-ords returned to the pointer
527       callbacks. (glutMotionFunc, glutMouseFunc)
528       Under X, you get co-ords in the range 0 +/- 2^15, under NT
529       you get 0..2^16. This is only really a problem when moving
530       above or to the left of the window.
531       eg dragging one pixel ABOVE the window will give :-
532       under x11 :      y = -1
533       under nt  :      y = 2^16 -1
534    x  Put in fix provided by Shane Clauson.
535
536    (12/17/96)
537    o  Idle functions not working properly for multiple windows.
538    x  Fixed this by posting an idle message to every window in the
539       window list when idle.
540
541    (12/18/96)
542    o  glutSetCursor() was misbehaving (lthomas@cco.caltech.edu).
543    x  Win32 requires that the hCursor member of the window class
544       be set to NULL when the class is registered or whenever the
545       mouse is moved, the original cursor is replaced (go
546       figure!).  Now sets the cursor whenever a WM_MOUSEMOVE message
547       is received, because the WM_SETCURSOR event resets the cursor
548       even when in the decoration area.
549
550    o  Geometry is not being handled quite right.  The numbers don't
551       take into account the window decorations.  That is, if I say
552       make a window 100x100, then the WHOLE window (not just the
553       client area) is 100x100.  Therefore, the client (opengl) area
554       is smaller than 100x100. (9/8/96)
555    x  Fixed.  Added code to subtract the decoration size on glutGet()
556       and add the decoration size on glutReshapeWindow().
557
558    o  Multiple glutPostRedisplay() calls are NOT being combined.
559       To get round the "coalesce" problem on glutPostRedisplay,
560       the easiest solution is to roll-your-own coalesce by
561       keeping a global "dirty" flag in the app (eg replace all
562       calls to glutPostRedisplay with image_dirty=TRUE;), and to
563       handle image_dirty with a single glutPostRedisplay in the
564       idle callback when required.  (erk - but increases
565       performance for my particular app (a rendering engine on
566       the end of a pipleine with a stream of graphics updates) by
567       a couple of orders of magnitude ! ) (9/8/96)
568    x  Added code to coalesce redisplays.  Every idle cycle, a
569       check is made to see which windows need redisplay, if they
570       need it, a redisplay is posted.  The glutPostRedisplay()
571       call is just a stub that sets a flag.
572
573
574THANKS:
575
576    Special thanks to the following people for extensive testing,
577    suggestions, fixes and help:
578
579    Alexander Stohr
580    Shane Clauson
581    Kenny Hoff
582    Richard Readings
583    Paul McQuesten
584    Philip Winston
585    JaeWoo Ahn
586    Joseph Galbraith
587    Paula Higgins
588    Sam Fortin
589    Chris Vale
590    Bill Mitchell
591
592    and of course, the original author of GLUT:
593    Mark Kilgard.
594
595    and many others...
596
597
598COPYRIGHT:
599
600The OpenGL Utility Toolkit distribution for Win32 (Windows NT &
601Windows 95) contains source code modified from the original source
602code for GLUT version 3.3 which was developed by Mark J. Kilgard.  The
603original source code for GLUT is Copyright 1997 by Mark J. Kilgard.
604GLUT for Win32 is Copyright 1997 by Nate Robins and is not in the
605public domain, but it is freely distributable without licensing fees.
606It is provided without guarantee or warrantee expressed or implied.
607It was ported with the permission of Mark J. Kilgard by Nate Robins.
608
609THIS SOURCE CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
610EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
611OR MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
612
613OpenGL (R) is a registered trademark of Silicon Graphics, Inc.
Note: See TracBrowser for help on using the repository browser.