OPenGL与MFC的接口

OPenGL与MFC的接口

ID:40564000

大小:101.82 KB

页数:9页

时间:2019-08-04

OPenGL与MFC的接口_第1页
OPenGL与MFC的接口_第2页
OPenGL与MFC的接口_第3页
OPenGL与MFC的接口_第4页
OPenGL与MFC的接口_第5页
资源描述:

《OPenGL与MFC的接口》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、OPenGL与MFC的接口2009-12-0723:23一、概述    OPenGL是一个与硬件和窗口系统无关的图形库,在其标准库里提供了核心的3-D图形指令,包括物体形状的描述、矩阵转换、光照、颜色、纹理、剪裁、位图等的处理函数。常见的材料比如红宝书里边为了使得讨论集中于图形学的概念,因而使用了辅助库glut处理与操作系统的交互(比如创建窗口、键盘消息、客户区重绘)。这样做使得读者可以将注意力集中于图形学的概念、原理理解以及OpenGL模型学习,同时也隐藏了OpenGL与窗口系统的接口部分。    

2、当需要开发一个有用的应用程序的时候,glut中简化了的窗口系统难以胜任。另一方面专业的窗口系统则专注于窗口与操作系统以及用户的交互。因而将二者的长处结和起来的应用程序结构式比较合理的,比如使用MSwindows窗口系统处理界面工作,使用OpenGL处理图形渲染工作。本文假设读者具有MFC的基本知识。二、OpenGL指令的通道——渲染环境      事实证明处理复杂任务时采用分治与抽象的策略是科学的选择。把任务的划分为功能明确、相互关联的子任务,当各个子任务完成的时候总的任务就随之解决。这里功能明确意味

3、着各个子任务的功能并集组成了整体的任务;相互关联意味着子任务之间需要一定的接口来进行信息传输。一般而言,子模块定义了信息的处理,而接口定义了信息的流动。这样站在功能模块内部来看,其他部分只剩下一个抽象的接口。     设置好OpenGL跟MFC的接口以后,程序员就可以专注于图形的绘制,而将窗口维护以及用户交互的任务留给MFC来做。具体地说是渲染环境和设备环境起到了这个作用。三、具体操作例子用一个多视图的MFC程序为例来演示如何进行环境的搭建。(1)   创建一个多视图的MFC应用程序框架。比如命名为M

4、FC_OpenGL_exp。则正确创建以后,程序具有6个类分别是:        CAboutDlg,        CChildFrame,        CMainFrame,        CMFC_OpenGL_expApp,        CMFC_OpenGL_expDoc,        CMFC_OpenGL_View,    运行结果如下图所示:                                                            图一。多文档MFC程

5、序框架的运行结果(1)  创建像素描述格式   对这个框架而言,视图类是展现输出的载体。因而我们将对这个类进行改造。在视图类被创建的时候创建像素描述格式,并且设置到设备环境中的。     对CMFC_OpenGL_expView类的WM_CREATE消息进行响应,添加消息响应函数OnCreate。在该函数里边添加如下的代码://TODO:Addyourspecializedcreationcodehere        //Step1,Setthepixelformatdescriptor      

6、PIXELFORMATDESCRIPTORpfd={             sizeof(PIXELFORMATDESCRIPTOR),             1,//versionPFD_DRAW_TO_WINDOW

7、PFD_SUPPORT_OPENGL

8、PFD_DOUBLEBUFFER

9、PFD_STER  EO_DONTCARE,  PFD_TYPE_RGBA,  24,  0,0,0,0,0,0,  0,//opalphabuffer,  0,//shiftbitignored  0,//n

10、oaccumulationbuffer  0,0,0,0,  32,//32bitzbuffer             0,             0,             PFD_MAIN_PLANE,             0,             0,0,0      };        HDChDC=::GetDC(this->GetSafeHwnd());      intindxPfd=ChoosePixelFormat(hDC,&pfd);      if(!SetPixe

11、lFormat(hDC,indxPfd,&pfd)){             MessageBox(TEXT("Failtosetpixelformat"));     }--------------------------------------------------------------------------------    这一步通过SetPixelFormat函数设置需要的像素格式描述。像素描述是设备环境的一个包含部分,但是该函数的输入

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。