- 1、本文档共100页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 使用WGL函数库(4/8) 初始化OpenGL环境 连续调用ChoosePixelFormat、SetPixelFormat函数设置像素格式 连续调用wglCreateContext、wglMakeCurrent函数创建并关联RC * 使用WGL函数库(5/8) 清除OpenGL环境 解除窗口和RC的关联 BOOL wglMakeCurrent(HDC hdc, HGLRC hglrc) 将hglrc设为NULL,hdc参数被忽略 删除RC BOOL wglDeleteContext(HGLRC hglrc) hglrc是待删除的RC 释放DC 通过Win32方法ReleaseDC释放窗口DC * 使用WGL函数库(6/8) 使用双缓存 设置像素格式时,设置PIXELFORMATDESCRIPTOR结构的dwFlags项为PFD_DOUBLEBUFFER 在显示回调函数的最后调用函数SwapBuffers * 使用WGL函数库(7/8) 程序模板 对于Frame/View/Document的程序结构,响应View的消息 WM_CREATE消息时创建RC,初始化OpenGL自身 WM_CLOSE或WM_DESTROY到来时删除RC WM_PAINT消息时执行绘制操作,如果使用MFC,则实现OnDraw函数 WM_SIZE消息时设置视口大小 * OpenGL相关资源(1/2) OpenGL官方网站 / NVIDIA显卡厂商网上技术论坛 /page/home ATI显卡厂商网上技术论坛 /developer/ MSDN上关于OpenGL部分的帮助文档 Platform SDK Documentation\Graphics and Multimedia Services\OpenGL * OpenGL相关资源(2/2) OpenGL1.5 Specification OpenGL state machine GLUT开发包 GLUT3.0 Specification 红宝书电子版(英文)及源码 N.Robins的OpenGL教程 * OpenGL相关函数库(7/9) OpenGL对窗口系统的扩展 对于各类窗口系统,OpenGL都提供了一个扩展库 对于Windows系统,OpenGL提供WGL库 并不是所有的函数前缀都是“wgl” 用于连接OpenGL和Windows,在Windows平台上设置OpenGL环境 头文件、库文件和动态链接库都和Windows GDI一样,由Windows底层提供,头文件是“WINGDI.H” 只能在Windows平台上运行 * OpenGL相关函数库(8/9) OpenGL程序开发中,常用的函数库组合 GL + GLU + GLUT(跨平台) 窗口控制GLUT,采用GLUT的消息处理机制 图形绘制GL + GLU + GLUT中的绘制函数 GL + GLU + WGL(仅限于Windows程序) 窗口控制WGL,采用Windows的消息处理机制 图形绘制GL + GLU + WGL中的绘制函数 入门阶段,最好是使用GLUT 编制较高级的Windows相关的绘制程序时,最好使用WGL * OpenGL相关函数库(9/9) 函数库的使用方式 包含各个库的头文件 程序中直接声明 include “*.h” 引用各个库的库文件 在开发工具的工程设置中加入对 “*.lib” 的引用 将各个库的动态链接库放在系统目录(对于Windows2000来说是“WINNT\System32”目录)下或者是程序的运行目录下 * 使用GLUT函数库(1/25) 创建窗口及初始化操作 回调函数(Callback function) 程序主循环 使用双缓存 绘制三维物体 一个简单的例子 * 使用GLUT函数库(2/25) 创建窗口及初始化操作 一共五个函数,一般在程序开始时连续调用 glutInit(int *argc, char **argv) 初始化GLUT glutInitDisplayMode(unsigned int mode) 指定所创建窗口的特性,如,是RGBA模式还是颜色索引模式,单缓存模式还是双缓存模式,是否有深度缓存 * 使用GLUT函数库(3/25) 创建窗口及初始化操作 glutInitWindowPosition(int x, int y) 窗口左上角在屏幕上的位置 glutInitWindowSize(int width, int size) 窗口的尺寸,以屏幕像素为单位 int glutCreateWindow(char *string) 创建OpenGL场景窗口,string是窗口名称,并返回一个新窗口的标识符 * 使用GLUT函数库(4/25) 回调函数(Callback function)
文档评论(0)