freeGLUT
GLUT的一個完全開源替代庫
freeglut是GLUT[注1]的一個完全開源替代庫。事件處理函數
glutMainLoop
glutMainLoopEvent
glutLeaveMainLoop //這是freeglut里的循環函數,可代替glutMainLoop函數,可解決內存泄露問題。
GLUT最初是《OpenGL紅皮書(第二版)》 中的示常式序。自那以後,GLUT簡單、跨平台的特點,使其在各種實際應用中廣泛應用。
GLUT(以及freeglut)允許用戶在眾多的平台的創建和管理窗口中OpenGL容器,以及相關的滑鼠、鍵盤和遊戲桿功能。
freeglut 由X-聯盟許可下發布的。
[注1] GLUT :OpenGL實用工具包
[注2] 《OpenGL紅皮書(第二版)》,由Mark Kilgard開發
目前最後版本GLUT v3.7的歷史可追溯至1998年8月,且該項目似乎已經被廢棄。它的許可證禁止任何人發布修改後的庫代碼。
毋庸置疑GLUT已經很老了,真的需要改善。此外,GLUT的許可證與一些軟體發行不兼容(如XFree86的)。
freeglut最初由帕維爾·W. Olszta與安德烈亞斯·烏姆巴赫和史蒂夫·貝克的貢獻。史蒂夫是現在官方的擁有者/維護者。
帕維爾在1999年12月1日開始freeglut的開發。目前,該項目幾乎可以100%的替代原來的GLUT,只有少數差別(如,the abandonment of SGI-specific features,按鈕盒子和動態視頻解析度)和 其他一小部分程序Bug。
有一些擴展功能,如應用程序中可使用更多的預定義形狀。
沒有目前的測試版本。
穩定的版本
Freeglut3.0.0發佈於2015年3月7日
Freeglut2.8.1 發佈於2013年4月5日
Freeglut 2.8.0發佈於2012年1月2日
Freeglut 2.6.0發佈於2009年11月27日
Freeglut 2.4.0發佈於2005年6月9日
Freeglut 2.2.0發佈於2003年12月12日
Freeglut 2.0.1發佈於2003年10月23日
glutInit
glutInitWindowPosition,
glutInitWindowSize
glutInitDisplayMode
glutInitDisplayString
glutMainLoop
glutMainLoopEvent
glutLeaveMainLoop //這是freeglut里的循環函數,可代替glutMainLoop函數,可解決內存泄露問題
glutCreateWindow
glutCreateSubwindow
glutDestroyWindow
glutSetWindow,glutGetWindow
glutSetWindowTitle,glutSetIconTitlew
glutReshapeWindow
glutPositionWindow
glutShowWindow,glutHideWindow,glutIconifyWindow
glutPushWindow,glutPopWindow
glutFullScreen的,glutLeaveFullScreen的,glutFullScreenToggle
glutPostRedisplay
glutPostWindowRedisplay
glutSwapBuffers
glutSetCursor
glutWarpPointer
glutEstablishOverlay
glutRemoveOverlay
glutUseLayer
glutPostOverlayRedisplay
glutPostWindowOverlayRedisplay
glutShowOverlay,glutHideOverlay
glutCreateMenu
glutDestroyMenu
glutGetMenu,glutSetMenu
glutAddMenuEntry
glutAddSubMenu
glutChangeToMenuEntry
glutChangeToSubMenu
glutRemoveMenuItem
glutAttachMenu,glutDetachMenu
glutTimerFunc
glutIdleFunc
glutDisplayFunc
glutOverlayDisplayFunc
glutReshapeFunc
glutKeyboardFunc
glutSpecialFunc
glutKeyboardUpFunc
glutSpecialUpFunc
glutMotionFunc,glutPassiveMotionFunc
glutVisibilityFunc
glutEntryFunc
glutJoystickFunc
glutSpaceballMotionFunc
glutSpaceballRotateFunc
glutSpaceballButtonFunc
glutButtonBoxFunc
glutDialsFunc
glutTabletMotionFunc
glutTabletButtonFunc
glutMenuStatusFunc
glutWindowStatusFunc
glutSetOption
glutGet
glutDeviceGet
glutGetModifiers
glutLayerGet
glutExtensionSupported
glutGetProcAddress
glutBitmapCharacter
glutBitmapString
glutBitmapWidth
glutBitmapLength
glutBitmapHeight
glutStrokeCharacter
glutStrokeString
glutStrokeWidth
glutStrokeLength
glutStrokeHeight
glutWireSphere,glutSolidSphere
glutWireTorus,glutSolidTorus
glutWireCone,glutSolidCone
glutWireCube,glutSolidCube
glutWireTetrahedron,glutSolidTetrahedron
glutWireOctahedron,glutSolidOctahedron
glutWireDodecahedron,glutSolidDodecahedron
glutWireIcosahedron,glutSolidIcosahedron
glutWireRhombicDodecahedron,glutSolidRhombicDodecahedron
glutWireTeapot,glutSolidTeapot
glutGameModeString
glutEnterGameMode,glutLeaveGameMode
glutGameModeGet
glutVideoResizeGet
glutSetupVideoResizing,glutStopVideoResizing
glutVideoResize
glutVideoPan
glutSetColor,glutGetColor
glutCopyColormap
glutMultiEntryFunc←id, GLUT_ENTERED|GLUT_LEFT
glutMultiButtonFunc←id, x, y, button, GLUT_DOWN|GLUT_UP
glutMultiMotionFunc←id, x, y
glutMultiPassiveFunc←id, x, y
glutInitContextFunc←void
glutPauseFunc←void
glutResumeFunc←void
glutIgnoreKeyRepeat,glutSetKeyRepeat
glutForceJoystickFunc
glutReportErrors
如果想要了解各個函數的用法,可以訪問擴展閱讀的網站
freeglut的最新版本(截止至2014年3月14日)是2.8.1(Released: 5 April 2013)
可以從官方獲得其最新版本的下載。
freeglut提供了對windows平台良好的編譯支持,在freeglut-2.8.1\VisualStudio目錄下可以找到2008~2012版本的VS工程文件(經測試,VS2013也完全可以使用VS2012的工程文件)。
2.1. 打開對應版本的工程文件,選擇對應的配置版本,建議Realese版本(Debug版本也可)。
2.2. 生成–>生成解決方案
2.3. 生成文件在\freeglut-2.8.1\lib\x86目錄,有freeglut.lib, freeglut.dll.
3.1. Header文件安裝:
3.2. 庫文件安裝
將freeglut.lib文件複製到Microsoft Visual Studio 12.0\VC\lib目錄下。
將freeglut.dll文件複製到C:\Windows\SysWOW64 【32位系統為“C:\Windows\System32”】目錄下。
直接包含文件即可。
分兩步:
1.VS2008里 工具-選項-項目和解決方案-常規 里 將 顯示高級生成配置前打鉤
2.工具 -自定義-"命令”選項卡-從左邊類別裡面找到“生成”-選中“生成”后,在右面選擇“解決方案配置”,拖拽到你想要的位置上。
3.然後就可以方便的選擇模式了。