freeGLUT

freeGLUT

freeglut是GLUT[注1]的一個完全開源替代庫。事件處理函式 glutMainLoop glutMainLoopEvent glutLeaveMainLoop //這是freeglut里的循環函式,可代替glutMainLoop函式,可解決記憶體泄露問題。

freeglut

介紹

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日

freeglut函式

初始化函式

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

Android的功能

glutInitContextFunc←void

glutPauseFunc←void

glutResumeFunc←void

其他功能

glutIgnoreKeyRepeat,glutSetKeyRepeat

glutForceJoystickFunc

glutReportErrors

如果想要了解各個函式的用法,可以訪問擴展閱讀的網站

freeglut的安裝

一、下載freeglut

freeglut的最新版本(截止至2014年3月14日)是2.8.1(Released: 5 April 2013)
可以從官方獲得其最新版本的下載。

二、編譯freeglut

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.

三、安裝freeglut

3.1. Header檔案安裝:
將\freeglut-2.8.1\include\GL 目錄複製到 Microsoft Visual Studio 12.0\VC\include目錄下。
3.2. 庫檔案安裝
將freeglut.lib檔案複製到Microsoft Visual Studio 12.0\VC\lib目錄下。
將freeglut.dll檔案複製到C:\Windows\SysWOW64 【32位系統為 “C:\Windows\System32”】目錄下。

四、使用freeglut

直接包含<gl/freeglut.h>檔案即可。

五、DEBUG,RELEASE 模式選擇

分兩步:

1.VS2008里 工具-選項-項目和解決方案-常規 里 將 顯示高級生成配置前打鉤

2.工具 -自定義-"命令”選項卡-從左邊類別裡面找到“生成”-選中“生成”後,在右面選擇“解決方案配置”,拖拽到你想要的位置上。

3.然後就可以方便的選擇模式了。

相關詞條

熱門詞條

聯絡我們