📄 readme.win
字号:
Forward from mjk: Nate Robins has completed a GLUT Win32 port basedon GLUT 3.3. I'm including Nate's README below so that users of themain GLUT distribution can understand the issues relating to Nate'sWin32 version of GLUT. Kudos to Nate for his contribution.============================================================================== GLUT for Win32 README ---------------------VERSION/INFO: This is GLUT for Win32 version 3.5 as of July 16th 1997. See the COPYRIGHT section for distribution and copyright notices. Send all bug reports/questions to Nate Robins (ndr@pobox.com). For information about GLUT for Win32 see the web page: www.pobox.com/~ndr/glut.html or subscribe to the mailing list: mail to majordomo@perp.com with "subscribe glut-win32" in the body of the message. For general information about GLUT, see the GLUT web page: http://reality.sgi.com/mjk_asd/glut3/glut3.html There are two versions of the library. One for use with the Microsoft implementation of OpenGL (opengl32) and one for use with the SGI implementation of OpenGL (opengl). The trailing '32' indicates a Microsoft implementation. Therefore, if you are using opengl32.dll, use glut32.dll and if you are using opengl.dll use glut.dll.COMPILING/INSTALLATION: o Precompiled versions of the DLL and import library can be found on the GLUT for Win32 web page mentioned above. o Edit the glutwin32.mak file to reflect your system configuration (see the glutwin32.mak file for more information). o Type "glutmake" to make everything. Try "glutmake clean" to delete all intermediate files, and "glutmake clobber" to delete all intermediate files and executables. The build system will automatically install everything in the places specified in the glutwin32.mak file.BORLAND NOTES: From what I understand, Borland supplies a utility that converts Microsoft Visual C++ .libs into Borland compatible files. Therefore, the best method for Borland users is probably to get the precompiled versions of the library and convert the library.MISC NOTES: o Overlay support is currently not implemented. I _had_ it implemented, but Microsoft has such LAME fluidity in its header files from version to version that I've decided it is easier just to wait for everything to settle down and (hopefully) vendors to provide better support for overlays. o To customize the windows icon, you can use the resource name GLUT_ICON. For example, create an icon named "glut.ico", and create a file called glut.rc that contains the following: GLUT_ICON ICON glut.ico then compile the glut.rc file with the following: rc /r glut and link the resulting glut.res file into your executable (just like you would an object file).IMPLEMENTATION DEPENDENT DIFFERENCES: There are a few differences between the Win32 version of GLUT and the X11 version of GLUT. Those are outlined here. Note that MOST of these differences are allowed by the GLUT specification. Bugs and unsupported features are outlined in the UNSUPPORTED/BUGS section. o glutInit: The following command line options have no meaning (and are ignored) in GLUT for Win32: -display, -indirect, -direct, -sync. o glutInitWindowSize, glutReshapeWindow: Win32 imposes a minimum width on top-level windows. I believe this is to prevent the window decorations (close, minimize, maximize & system menu buttons) from colliding (but in my opinion it is a really lame restriction). Therefore, a (top-level) window cannot be created whose width is smaller than the minimum (somewhere around 100 pixels). o glutInitWindowPosition, glutPositionWindow: Win32 has two different coordinate systems for windows. One is in terms of client space and the other is the whole window space (including the decorations). If you glutPositionWindow(0, 0), GLUT for Win32 will place the window CLIENT area at 0, 0. This will cause the window decorations (title bar and left edge) to be OFF-SCREEN, but it gives the user the most flexibility in positioning. HOWEVER, if the user specifies glutInitWindowPosition(0, 0), the window is placed relative to window space at 0, 0. This will cause the window to be opened in the upper left corner with all the decorations showing. This behaviour is acceptable under the current GLUT specification. o glutSetIconTitle, glutSetWindowTitle: There is no separation between Icon title and Window title in Win32. Therefore, changing the icon title will change the window title and vice-versa. This could be worked around by saving the icon and window titles and changing the window title when the state of the window is changed. o glutSetCursor: As indicated in the GLUT specification, cursors may be different on different platforms. This is the case in GLUT for Win32. For the most part, the cursors will match the meaning, but not necessarily the shape. Notable exceptions are the GLUT_CURSOR_INFO & GLUT_CURSOR_SPRAY which use the crosshair cursor and the GLUT_CURSOR_CYCLE which uses the 'no' or 'destroy' cursor in Win32. o glutVisibilityFunc: Win32 seems to be unable to determine if a window is fully obscured. Therefore, the visibility of a GLUT window is only reflected by its Iconic, Hidden or Shown state. That is, even if a window is fully obscured, in GLUT for Win32, it is still "visible". o glutEntryFunc: Window Focus is handled differently in Win32 and X. Specifically, the "window manager" in Win32 uses a "click to focus" policy. That is, in order for a window to receive focus, a mouse button must be clicked in it. Likewise, in order for a window to loose focus, a mouse button must be clicked outside the window (or in another window). Therefore, the Enter and Leave notification provided by GLUT may behave differently in the Win32 and in X11 versions. There is a viable workaround for this. A program called "Tweak UI" is provided by Microsoft which can be used to change the focus policy in Win32 to "focus follows mouse". It is available from the Microsoft Web Pages: http://www.microsoft.com/windows/software/PowerToy.htm o glutCopyColormap: GLUT for Win32 always copies the colormap. There is never any sharing of colormaps. This is probably okay, since Win32 merges the logical palette and the physical palette anyway, so even if there are two windows with totally different colors in their colormaps, Win32 will find a (hopefully) good match between them. o glutIdleFunc + menus: The glut idle function will NOT be called when a menu is active. This causes all animation to stop when a menu is active (in general, this is probably okay). Timer functions will still fire, however. If the timer callback draws into the rendering context, the drawing will not show up until after the menu has finished, though.UNSUPPORTED/BUGS: o glutAttachMenu: Win32 only likes to work with left and right mouse buttons. Especially so with popup menus. Therefore, when attaching the menu to the middle mouse button, the LEFT mouse button must be used to select from the menu (c'mon Microsoft - can't you do more than 2 buttons?). o glutSpaceball*, glutButtonBox*, glutTablet*, glutDials*: None of the special input devices are supported at this time. o When resizing or moving a GLUT for Win32 window, no updating is performed. This causes the window to leave "tracks" on the screen when getting bigger or when previously obscured parts are being revealed. I put in a bit of a kludgy workaround for those that absolutely can't have the weird lines. The reshape callback is called multiple times for reshapes. Therefore, in the reshape callback, some drawing can be done. o The video resizing capabilities of GLUT 3.3+ for X11 is currently unimplemented (this is probably ok, since it really isn't part of the spec until 4.0). I doubt that this will ever be part of GLUT for Win32, since there is no hardware to support it. A hack could simply change the resolution of the desktop.CHANGES/FIXES: (May 22, '97) o Menus don't work under Windows 95 x Fixed! Added a unique identifier to each menu item, and a search function to grab a menu item given the unique identifier. (May 21, '97) o A few minor bug fixes here and there. x Thanks to Bruce Silberman and Chris Vale for their help with this. We now have a DLL! (Apr 25, '97) o DLL version of the library is coming (as soon as I figure out how to do it -- if you know, let me know). x Thanks to Bruce Silberman and Chris Vale for their help with this. We now have a DLL! (Apr 24, '97) x Added returns to KEY_DOWN etc messages so that the F10 key doesn't toggle the system menu anymore. (Apr 7, '97) o Palette is incorrect for modes other than TrueColor. x Fixed this by forcing a default palette in modes that aren't Truecolor in order to 'simulate' it. The applications program shouldn't have to do this IMHO, but I guess we can't argue with Microsoft (well, we can, but what good will it do?). (Apr 2, '97) x Added glut.ide file for Borland users. (Apr 2, '97) x Fixed a bug in the WM_QUERYNEWPALETTE message. Wasn't checking for a null colormap, then de-ref'd it. Oops. (Mar 13, '97) o glutTimerFunc: Currently, GLUT for Win32 programs busy waits when there is an outstanding timer event (i.e., there is no select() call). I haven't found this to be a problem, but I plan to fix it just because I can't bear the thought of a busy wait. x Added a timer event and a wait in the main loop. This fixes
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -