- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OpenGL中常用的GLUT函数库解读
OpenGL 中常用的 GLUT 函数库
GLUT函数说明
一、初始化
?
这个函数用来初始化GLUT库。对应 main 函数的形式应是: int main(int argc,char* argv[]);
这个函数从 main 函数获取其两个参数。
?
设置glut程序要产生的窗口的大小和位置(左上角)。以像素为单位。
?
设置图形显示模式。参数mode的可选值为:
GLUT_RGBA: ? ? ? ? ? ? 当未指明GLUT-RGBA或GLUT-INDEX时,是默认使用的模式。表明欲建立RGBA模式的窗口。
GLUT_RGB: ? ? ? ? ? ? ? 与GLUT-RGBA作用相同。
GLUT_INDEX: ? ? ? ? ? 指明为颜色索引模式。
GLUT_SINGLE: ? ? ? ? 只使用单缓存?
GLUT_DOUBLE: ? ? ? ?使用双缓存。以避免把计算机作图的过程都表现出来,或者为了平滑地实现动画。?
GLUT_ACCUM: ? ? ? ? ?让窗口使用累加的缓存。?
GLUT_ALPHA: ? ? ? ? ? 让颜色缓冲区使用alpha组件。
GLUT_DEPTH: ? ? ? ? ? 使用深度缓存。
GLUT_STENCIL: ? ? ? ?使用模板缓存。?
GLUT_MULTISAMPLE:让窗口支持多例程。?
GLUT_STEREO: ? ? ? ? ?使窗口支持立体。
GLUT_LUMINACE: ? ? ? ?luminance是亮度的意思。但是很遗憾,在多数OpenGL平台上,不被支持。
二、事件处理(Event Processing)
?void glutMainLoop(void)
让 glut 程序进入事件循环。在一个glut程序中最多只能调用一次。一旦调用,会直到程序结束才返回。
?
三、窗口管理(Window Management)
?
产生一个顶层的窗口。name 作为窗口的名字,也就是窗口标题栏显示的内容。
返回值是生成窗口的标记符,可用函数glutGetWindow()加以引用。
?
创建一个子窗口。win是其父窗口的标记符。x,y是相对父窗口的位移,以像素表示。
width,height是子窗口的宽和高。
?
功能分别是:设置标记符为win的窗口为当前窗口;返回当前窗口的标记符。
?
销毁以 win 标记的窗口。
?
将当前窗口打上标记,标记其需要再次显示。
?
当窗口模式为双缓存时,此函数的功能就是把后台缓存的内容交换到前台显示。当然,只有单缓存时,使用它的功能跟用glFlush()一样。
而使用双缓存是为了把完整图画一次性显示在窗口上,或者是为了实现动画。
?
改变当前窗口的位置:当前窗口是顶层窗口时,x,y是相对于屏幕的的位移;当前窗口若是子窗口时,x,y是相对其父窗口原点的位移。
?
改变当前窗口的大小。
width,height是当前窗口新的宽度和高度值,当然只能是正值。
?
让当前窗口全屏显示。当前窗口是顶层窗口时才有效。
?
对顶层窗口和子窗口均有效。改变当前窗口在栈中相对于其它窗口的次序。
?
这三个函数作用是改变当前窗口的显示状态。
glutShowWindow让当前窗口可视(这时它还是可能被其它窗口挡住)。glutHideWindow让当前窗口成为不可视状态。glutIconifyWindow让当前窗口成为一个图标,也即是最小化。void glutSetWindowTitle(char* name);void glutSetIconTitle(char* name);
设置当前窗口(必须是顶层窗口)的标题和图标化时的标题。
?
设置当前窗口的光标样式。
cursor可选值有许多:如GLUT_CURSOR_RIGHT_ARROW指向右边的光标,GLUT_CURSOR_LEFT_ARROW指向左边的光标,GLUT_CURSOR_INFO成为手状。GLUT_CURSOR_DESTROY呈叉状,GLUT_CURSOR_HELP呈现问号的形状。等等。
?
四、窗口的覆盖管理
?
对当前窗口创建覆盖图层。该覆盖图的模式由初始化显示模式函数glutDisplayMode()决定。
?
枚举量layer可选值为:GLUT_NORMAL,GLUT_OVERLAY.分别选取正常位平面或覆盖平面。
?
除去覆盖图。当没有覆盖图层时,调用这条语句也是安全的,这时系统不做任何事。
?
标记该覆盖图层为需要重新显示的状态。
?
显示当前窗口的覆盖图层;隐藏覆盖图层。这两条语句即时执行。注意一下,只有窗口可视时,使用glutShowOverlay才能使其覆盖图层可视。当窗口被其他窗口遮挡时,其覆盖图层也被遮挡从而不可视。
五、菜单管理
?
当点击菜单时,调用回调函数fun
您可能关注的文档
最近下载
- 幼儿园《滚进球门》大班科学活动课件.pptx
- 五年级快乐读书吧 整本书阅读名师优课《中国民间故事》导读课课件.pptx VIP
- 粉体科学工艺手册handbook-of-powder-science--technology-1997.pdf
- 网络营销基础与实务第二版何晓兵各章案例分析答案.docx
- 国家开放大学计算机网络(本)形考任务答案作业四实验报告答案.docx
- Unit 1Let’s be friends! 综合素质达标2024-2025- 外研版(2024)英语三年级上册.doc VIP
- 《合成树脂工业污染物排放标准》(GB 31572-2015)修改单(征.pdf VIP
- GB18351-2015车用乙醇汽油(E10).pdf
- 汽车机械基础 孙杰 任务二 液压元件新.ppt
- 非线性大作业—直流电动机调速系统的建模与控制系统的设计.docx
文档评论(0)