freeglut 是
GLUT (OpenGL Utility Toolkit)的一个免费开源替代库。在程序中负责创建窗口、初始化 OpenGL 上下文和处理输入事件所需的所有系统特定的杂务,从而允许创建真正可移植的 OpenGL 程序。
信息简介
freeglut
基本介绍
GLUT 最初是《OpenGL红皮书(第二版)》(Mark Kilgard著)中的示例
程序。自那以后,GLUT简单、跨平台的特点,使其在各种实际应用中广泛应用。
GLUT(以及freeglut)允许用户在众多的平台的创建和管理窗口中OpenGL容器,以及相关的鼠标、键盘和游戏杆功能。最后版本GLUT v3.7的历史可追溯至1998年8月,且该项目似乎已经被废弃。它的许可证禁止任何人发布修改后的库代码。毋庸置疑GLUT已经很老了,真的需要改善。此外,GLUT的许可证与一些软件发行不兼容(如XFree86的)。
freeglut 最初由帕维尔·W. Olszta与安德烈亚斯·乌姆巴赫和史蒂夫·贝克的贡献。史蒂夫是官方的拥有者/维护者。帕维尔在1999年12月1日开始 freeglut 的开发。freeglut 几乎可以100%的替代原来的GLUT,只有少数差别(如,the abandonment of SGI-specific features,按钮盒子和动态视频分辨率)和 其他一小部分程序Bug。
freeglut 由X-联盟许可下发布的。
有一些扩展功能,如应用程序中可使用更多的预定义形状。
发布版本
稳定的版本:
包含函数
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的最新版本(截止至2014年3月14日)是2.8.1(Released: 5 April 2013)
可以从官方获得其最新版本的下载。
二、编译freeglut
2.1. 打开对应版本的工程文件,选择对应的配置版本,建议Realese版本(Debug版本也可)。
2.2. 生成,生成解决方案
三、安装freeglut
3.1. Header文件安装:
3.2. 库文件安装
】目录下。
四、使用 freeglut
直接包含文件即可。
五、DEBUG 与 RELEASE 模式选择
分两步:
1.VS2008里 工具-选项-项目和解决方案-常规 里 将 显示高级生成配置前打钩
2.工具 -自定义-“命令”选项卡-从左边类别里面找到“生成”-选中“生成”后,在右面选择“解决方案配置”,拖拽到你想要的位置上。
3.然后就可以方便的选择模式了。