当前位置首页 > 百科> 正文

freeGLUT

2018-02-01 12:16:01 百科
freeGLUT

freeGLUT

freeglut是GLUT[注1]的一个完全开源替代库。事件处理函式

glutMainLoop

glutMainLoopEvent

glutLeaveMainLoop //这是freeglut里的循环函式,可代替glutMainLoop函式,可解决记忆体泄露问题。

基本介绍

  • 中文名:freeGLUT
  • 解释:是GLUT的一个完全开源替代库
  • 特点:简单、跨平台
  • 来自:《OpenGL红皮书(第二版)》

freeglut

介绍

GLUT最初是《OpenGL红皮书(第二版)》[注2]中的示例程式。自那以后,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.然后就可以方便的选择模式了。
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net