在MFC单文档中使用OpenGL.docxVIP

  • 11
  • 0
  • 约8千字
  • 约 10页
  • 2017-06-09 发布于北京
  • 举报
OpenGL(Fancy_mage)(参考《实战OpenGL三维可视化系统开发与源码精解》,吕希奎,周小平著)一、OpenGL像素格式1、像素格式设置??像素格式是OpenGL窗口的重要属性,它包括是否使用双缓冲,颜色位数和类型以及深度位数等。像素格式可由Windows系统定义的所谓像素格式描述子结构来定义(PIXELFORMATDESCRIPTOR),该结构定义在windows.h中(与BMP头文件BITMAPINFOHEADER相似,在windows.h中,结构体不需要单独定义)。在该结构中包含有26个属性信息,其形式为:typedefstructtagPIXELFORMATDESCRIPTOR{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_STEREO NT 不支持PFD_SUPPORT_OPENGL 支持OpenGLPFD_SUPPORT_GDI 支持GDI,此时不可使用PFD_DOUBLEBUFFER*/BYTEiPixelType;//像素颜色模式,可选项为PFD_TYPE_RGBA或PFD_TYPE_INDEX,分别对应于RGBA模式和颜色索引模式。BYTEcColorBits;//指定颜色的位数。BYTEcRedBits; //采用RGBA模式时,红色组分占用位数BYTEcRedShift; //采用RGBA模式时,红色组分占偏移量BYTEcGreenBits;//采用RGBA模式时,绿色组分占用位数BYTEcGreenShift;//采用RGBA模式时,绿色组分偏移量BYTEcBlueBits; //采用RGBA模式时,蓝色组分占用位数BYTEcBlueShift; //采用RGBA模式时,蓝色组分偏移量BYTEcAlphaBits;//采用RGBA模式时,Alpha组分占用位数。BYTEcAlphaShift;//采用RGBA模式时,Alpha组分偏移量。BYTEcAccumBits;//指定累积缓冲区表示一个像素所用位数。BYTEcAccumRedBits;//定累积缓冲区表示红色组分占用位数。BYTEcAccumGreenBits;//指定累积缓冲区表示绿色组分占用位数。BYTEcAccumBlueBits;//指定累积缓冲区表示蓝色组分占用位数。BYTEcAccumAlphaBits;//指定累积缓冲区表示Alpha组分占用位数BYTEcDepthBits;//指定深度缓冲区表示一个像素所用位数。BYTEcStencilBits;//指定模板缓冲区表示一个像素所用位数。BYTEcAuxBuffers;//指定辅助缓冲区,Windows9x、NT不支持BYTEiLayerType; //Windows9x、NT下只能是PFD_MAIN_PLANE。BYTEbReserved; //0DWORDdwLayerMask;//指定覆盖层的屏蔽,Windows9x、NT不支持DWORDdwVisibleMask; //Windows9x、NT不支持DWORDdwDamageMask; //Windows9x、NT不支持} PIXELFORMATDESCRIPTOR;Windows提供了四个像素格式管理函数,分别介绍如下:(1)intChoosePixelFormat(HDC hdc,PIXELFORMATDESCRIPTOR *ppdf)??该函数比较传过来的像素格式描述和OpenGL支持的像素格式,返回一个最佳匹配的像素格式索引。该索引值可传给SetPixelFormat为DC设置像素格式。返回值为0表示失败。在比较像素格式时,匹配优先级顺序为像素格式描述子结构中的下述各域:dwFlags-cColorBits-cAlphaBits-cAccumBits-cDepthBits-cStencilBits-cAuxBuffers-iLayerType硬件支持的像素格式优先。(2)intDescribePixelFormat(HDC hdc,intiPixelFormat, UINT nBytes, LPPIXELFORMATDESCRIPTOR*ppfd)??该函数用格式索引iPixelFormat说明的像素格式来填写由ppfd所指向的像素格式描述子结构,利用该函数可以枚举

文档评论(0)

1亿VIP精品文档

相关文档