像素格式(PIXELFORMATDESCRIPTOR)明确了OpenGL绘制平面的特性,如象素缓冲区是单缓冲还是双缓冲,数据是 RGBA方式还是Color Index方式等。
每个OpenGL显示设备都支持一种指定的像素格式。一般用一个名为PIXELFORMATDESCRIPTOR的结构来表示某个特殊的像素格式,这个结构包含26个属性信息。Win32定义PIXELFORMATDESCRIPTOR如下所示:

typedef struct tagPIXELFORMATDESCRIPTOR
  {
    WORD nSize;
    WORD nVersion;
    DWORD dwFlags;
    BYTE iPixelType;
    BYTE cColorBits;
    BYTE cRedBits;
    BYTE cRedShift;
    BYTE cGreenBits;
    BYTE cGreenShift;
    BYTE cBlueBits;
    BYTE cBlueShift;
    BYTE cAlphaBits;
    BYTE cAlphaShift;
    BYTE cAccumBits;
    BYTE cAccumRedBits;
    BYTE cAccumGreenBits;
    BYTE cAccumBlueBits;
    BYTE cAccumAlphaBits;
    BYTE cDepthBits;
    BYTE cStencilBits;
    BYTE cAuxBuffers;
    BYTE iLayerType;
    BYTE bReserved;
    DWORD dwLayerMask;
    DWORD dwVisibleMask;
    DWORD dwDamageMask;
  } PIXELFORMATDESCRIPTOR;

前两个成员,结构体大小,版本;
第三个成员,多个标志 | 起来;
具体参阅:

https://docs.microsoft.com/en-us/previous-versions//ms537569(v=vs.85)?redirectedfrom=MSDN

bReserved只能设为0,
最后三个变量Windows 95都不支持,故全设置为0;

The PIXELFORMATDESCRIPTOR structure describes the pixel format of a drawing surface.
像素格式描述符结构体描述了一个绘图表面的像素格式。

iLayerType
Ignored. Earlier implementations of OpenGL used this member, but it is no longer used.
倒数第五个成员;早期OpenGL版本使用这个成员,它已不再使用;

VC++ 2012,新建一个单文档工程;

先初始化此结构体;把返回地址选择进设备描述表;然后才能进行后续的绘图;

看一下是否初始化成功;把相关返回值输出一下;

void CpixeltestView::OnDraw(CDC* pDC)
{CpixeltestDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);if (!pDoc)return;// TODO: 在此处为本机数据添加绘制代码CDC*     pmyDC;CString  str1;PIXELFORMATDESCRIPTOR pfd ={sizeof(PIXELFORMATDESCRIPTOR),1,PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER,  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};str1.Format(_T("%x"), pfd);pDC->TextOutW(50, 50, str1);pmyDC = new CClientDC(this);int pixelFormat = ChoosePixelFormat(pmyDC->GetSafeHdc(), &pfd);str1.Format(_T("%x"), pmyDC);pDC->TextOutW(50, 80, str1);str1.Format(_T("%d"), pixelFormat);pDC->TextOutW(50, 110, str1);
}

运行如下;

Win32 像素格式描述符学习相关推荐

  1. 【OpenGL】八、初始化 OpenGL 渲染环境 ( 导入 OpenGL 头文件 | 链接 OpenGL 库 | 将窗口设置为 OpenGL 窗口 | 设置像素格式描述符 | 渲染绘制 ) ★

    文章目录 一.导入 OpenGL 的两个头文件 二.链接 OpenGL 库 三.将 Windows 桌面窗口改成 OpenGL 窗口 四.获取窗口设备 五.设置像素格式描述符 六.设置像素格式 七.创 ...

  2. while的用法和格式描述符

    一.常用:while(n–)的意思就是 1.先取n的值,判断是否为0,不是跳到第2步,是的话跳到第4步 2.不是那么n=n-1,然后执行while循环 3.再回到第一步 4.执行while循环后面的语 ...

  3. CVPR2020:端到端学习三维点云的局部多视图描述符

    CVPR2020:端到端学习三维点云的局部多视图描述符 End-to-End Learning Local Multi-View Descriptors for 3D Point Clouds 论文地 ...

  4. openGL第四讲——像素格式管理

    OpenGL基础技术讲座--像素格式管理 1.Windows下的调色板 OpenGL可以使用16色.256色.64K和16M真彩色.真彩模式下不需要调色板,而在16色模式下根本不可能得到较为满意的效果 ...

  5. python100例详解-几个小例子给你讲解Python中类的描述符

    原标题:几个小例子给你讲解Python中类的描述符 学习 Python 这么久了,说起 Python 的优雅之处,能让我脱口而出的, Deor(描述符)特性可以排得上号. 描述符是Python 语言独 ...

  6. uvc摄像头代码解析之描述符

    1.uvc驱动模块入口 module_init(uvc_init); //1.模块入口 2.初始化函数 static int __init uvc_init(void) // 2.初始化函数 {int ...

  7. UVC摄像头(2)驱动层——UVC描述符参数设置

    接着上一篇UVC摄像头(1) composite_gadget_bind(cdev); 我们绑定它的函数是这个 webcam_bind(struct usb_composite_dev *cdev) ...

  8. 【OS学习笔记】十四 保护模式二:段描述符

    上一篇文章初步进入保护模式的学习.首先学习了全局描述符表GDT.点击链接查看上一篇文章:全局描述符表 本篇文章继续学习,GDT中存放的条目:描述符,确切的说是段描述符.学习段描述符的作用以及段描述符的 ...

  9. USB学习3-USB描述符

    本片博客是基于对韦东山老师的USB相关学习视频.<USB2.0>.<MindShare USB 3.0 Technology>.<vdocuments.mx_univer ...

最新文章

  1. 又见斐波那契数列(矩阵构造+矩阵快速幂)
  2. 剑指offer の 1-10 之javascript实现
  3. redisTemplate设置key零点过期,生成自增的单号
  4. linux文件系统_Linux的文件系统简介
  5. 面试官系统精讲Java源码及大厂真题 - 32 ReentrantLock 源码解析
  6. Nginx使用教程(七):使用Nginx缓存之proxy cache
  7. MySQL学生人数统计小案例
  8. 【报告分享】bilibili2020年营销通案:激活年轻营销力.pdf(附下载链接)
  9. Atitit.jsou html转换纯文本 java c# php
  10. 【撸大湿】Storm 分布式BP神经网络(开源)
  11. 使用OpenCV和Python进行人脸识别
  12. 1、字符串与数字相互转换
  13. 如何监测微信群关键词并收集转发到指定的群
  14. 埃克森尔科技参与IEEE BDL SC数字身份标准工作组会议
  15. html5游戏 遥控器按键,遥控器按键功能说明汇总
  16. 【ThreeJS】基础教学 创建一个立方体
  17. k8s对接smb/cifs存储
  18. 曾经拥有的,不要忘记。不能得到的,更要珍惜。属于自己的,不要放弃。已经失去的,留作回忆。
  19. 快速找出一个自然数的所有因数的方法
  20. 连接MySQL的jar包在本地哪里可以找到

热门文章

  1. 预训练模型参数重载必备!
  2. html在分页功能中如何实现当前页面的页码样式与其他页面不同_如何使用word文档?word文档使用技巧教程?...
  3. JVM盘点家底查看初始默认值
  4. CTFshow 命令执行 web29
  5. CTFshow 爆破 web22
  6. Leetcode记录
  7. [YTU]_2384 ( 矩形类中运算符重载【C++】)
  8. cot和acot--余切和反余切函数
  9. iOS----------iPhone导出手机所有短信
  10. CMD查询Mysql中文乱码的解决方法