penGL使用准备.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
二、MFC中的OpenGL基本框架;二、MFC中的OpenGL基本框架;二、MFC中的OpenGL基本框架;二、MFC中的OpenGL基本框架;二、MFC中的OpenGL基本框架;二、MFC中的OpenGL基本框架;二、MFC中的OpenGL基本框架;;;;;;3、改写OnPreCreate函数并给视图类添加成员函数和成员变量 ;;BOOL?COpenGLDemoView::SetWindowPixelFormat(HDC?hDC) {//定义窗口的像素格式 ????PIXELFORMATDESCRIPTOR?pixelDesc= ????{ ????????sizeof(PIXELFORMATDESCRIPTOR), ????????1, ????????PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL| ????????PFD_DOUBLEBUFFER|PFD_SUPPORT_GDI, ????????PFD_TYPE_RGBA, ????????24, ????????0,0,0,0,0,0, ????????0, ????????0, ????????0, ????????0,0,0,0, ????????32, ????????0, ????????0, ????????PFD_MAIN_PLANE, ????????0, ????????0,0,0 ; ?}; ????this-m_GLPixelIndex?=?ChoosePixelFormat(hDC,pixelDesc); ????if(this-m_GLPixelIndex==0) ????{ ????????this-m_GLPixelIndex?=?1; ????????if(DescribePixelFormat(hDC,this-m_GLPixelIndex,sizeof(PIXELFORMATDESCRIPTOR),pixelDesc)==0) ????????{ ????????????return?FALSE; ????????} ????} ????if(SetPixelFormat(hDC,this-m_GLPixelIndex,pixelDesc)==FALSE) ????{ ????????return?FALSE; ????} ????return?TRUE; };;5、代码解释 现在我们可以看一看Describe-PixelFormat提供有哪几种像素格式,并对代码进行一些解释:  PIXELFORMATDESCRIPTOR包括了定义像素格式的全部信息。  DWFlags定义了与像素格式兼容的设备和接口。  通常的OpenGL发行版本并不包括所有的标志(flag)。wFlags能接收以下标志: PFD_DRAW_TO_WINDOW 使之能在窗口或者其他设备窗口画图; PFD_DRAW_TO_BITMAP 使之能在内存中的位图画图; PFD_SUPPORT_GDI 使之能调用GDI函数(注:如果指定了PFD_DOUBLEBUFFER,这个选项将无效); ;PFD_SUPPORT_OpenGL 使之能调用OpenGL函数; PFD_GENERIC_FORMAT 假如这种象素格式由Windows GDI函数库或由第三方硬件设备驱动程序支持,则需指定这一项; PFD_NEED_PALETTE 告诉缓冲区是否需要调色板,本程序假设颜色是使用24或 32位色,并且不会覆盖调色板; PFD_NEED_SYSTEM_PALETTE 这个标志指明缓冲区是否把系统调色板当作它自身调色板的一部分; PFD_DOUBLEBUFFER 指明使用了双缓冲区(注:GDI不能在使用了双缓冲区的窗口中画图); PFD_STEREO 指明左、右缓冲区是否按立体图像来组织。 PixelType定义显示颜色的方法。PFD_TYPE_RGBA意味着每一位(bit)组代表着红、绿、蓝各分量的值。PFD_TYPE_COLORINDEX 意味着每一位组代表着在彩色查找表中的索引值。本例都是采用了PFD_TYPE_RGBA方式。 ;cColorBits定义了指定一个颜色的位数。对RGBA来说,位数是在颜色中红、绿、蓝各分量所占的位数。对颜色的索引值来说,指的是表中的颜色数。 cRedBits、cGreenBits、cBlue-Bits、cAlphaBits用来表明各相应分量所使用的位数。 cRedShift、cGreenShift、cBlue-Shift、cAlphaShift用来表明各分量从颜色开始的偏移量所占的位数。   一旦初始化完我们的结构,我们就想知道与要求最相近的系统象素格式。我们可以这样做:  

文档评论(0)

rovend + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档