在MFC单文档中使用OpenGL.docx

在MFC单文档中使用OpenGL.docx

ID:27226626

大小:30.14 KB

页数:10页

时间:2018-12-02

在MFC单文档中使用OpenGL.docx_第1页
在MFC单文档中使用OpenGL.docx_第2页
在MFC单文档中使用OpenGL.docx_第3页
在MFC单文档中使用OpenGL.docx_第4页
在MFC单文档中使用OpenGL.docx_第5页
资源描述:

《在MFC单文档中使用OpenGL.docx》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、OpenGL(Fancy_mage)(参考《实战OpenGL三维可视化系统开发与源码精解》,吕希奎,周小平著)一、OpenGL像素格式1、像素格式设置  像素格式是OpenGL窗口的重要属性,它包括是否使用双缓冲,颜色位数和类型以及深度位数等。像素格式可由Windows系统定义的所谓像素格式描述子结构来定义(PIXELFORMATDESCRIPTOR),该结构定义在windows.h中(与BMP头文件BITMAPINFOHEADER相似,在windows.h中,结构体不需要单独定义)。在该结构中包含有26个属性信息,其形式为:typedefstructtagPIXELFO

2、RMATDESCRIPTOR{WORDnSize;//该结构所占内存空间。WORDnVersion;//版本号,当前为。DWORDdwFlags;/*PFD_DRAW_TO_BITMAP支持内存中绘制位图PFD_DRAW_TO_WINDOW支持屏幕绘图PFD_DOUBLEBUFFER支持双缓冲PFD_CENERIC_FORMAT指定选择GDI支持的像素格式PFD_NEED_PALETTE指定需要逻辑调色板PFD_NEED_SYSTEM_PALETTE指定需要硬件调色板PFD_STEREONT不支持PFD_SUPPORT_OPENGL支持OpenGLPFD_SUPPORT_

3、GDI支持GDI,此时不可使用PFD_DOUBLEBUFFER*/BYTEiPixelType;//像素颜色模式,可选项为PFD_TYPE_RGBA或PFD_TYPE_INDEX,分别对应于RGBA模式和颜色索引模式。BYTEcColorBits;//指定颜色的位数。BYTEcRedBits;//采用RGBA模式时,红色组分占用位数BYTEcRedShift;//采用RGBA模式时,红色组分占偏移量BYTEcGreenBits;//采用RGBA模式时,绿色组分占用位数BYTEcGreenShift;//采用RGBA模式时,绿色组分偏移量BYTEcBlueBits;//采用

4、RGBA模式时,蓝色组分占用位数BYTEcBlueShift;//采用RGBA模式时,蓝色组分偏移量BYTEcAlphaBits;//采用RGBA模式时,Alpha组分占用位数。BYTEcAlphaShift;//采用RGBA模式时,Alpha组分偏移量。BYTEcAccumBits;//指定累积缓冲区表示一个像素所用位数。BYTEcAccumRedBits;//定累积缓冲区表示红色组分占用位数。BYTEcAccumGreenBits;//指定累积缓冲区表示绿色组分占用位数。BYTEcAccumBlueBits;//指定累积缓冲区表示蓝色组分占用位数。BYTEcAccum

5、AlphaBits;//指定累积缓冲区表示Alpha组分占用位数BYTEcDepthBits;//指定深度缓冲区表示一个像素所用位数。BYTEcStencilBits;//指定模板缓冲区表示一个像素所用位数。BYTEcAuxBuffers;//指定辅助缓冲区,Windows9x、NT不支持BYTEiLayerType;//Windows9x、NT下只能是PFD_MAIN_PLANE。BYTEbReserved;//0DWORDdwLayerMask;//指定覆盖层的屏蔽,Windows9x、NT不支持DWORDdwVisibleMask;//Windows9x、NT不支持

6、DWORDdwDamageMask;//Windows9x、NT不支持}PIXELFORMATDESCRIPTOR;Windows提供了四个像素格式管理函数,分别介绍如下:(1)intChoosePixelFormat(HDChdc,PIXELFORMATDESCRIPTOR*ppdf)  该函数比较传过来的像素格式描述和OpenGL支持的像素格式,返回一个最佳匹配的像素格式索引。该索引值可传给SetPixelFormat为DC设置像素格式。返回值为0表示失败。在比较像素格式时,匹配优先级顺序为像素格式描述子结构中的下述各域:dwFlags->cColorBits->cA

7、lphaBits->cAccumBits->cDepthBits->cStencilBits->cAuxBuffers->iLayerType硬件支持的像素格式优先。(2)intDescribePixelFormat(HDChdc,intiPixelFormat,UINTnBytes,LPPIXELFORMATDESCRIPTOR*ppfd)  该函数用格式索引iPixelFormat说明的像素格式来填写由ppfd所指向的像素格式描述子结构,利用该函数可以枚举像素格式。(3)intGetPixelFormat(HDChdc) 

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

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

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