首页 热点资讯 义务教育 高等教育 出国留学 考研考公

opengl中,PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER中的pfd代表什么呢

发布网友 发布时间:2022-04-26 02:27

我来回答

1个回答

热心网友 时间:2023-10-05 07:22

pfd 是 PIXELFORMATDESCRIPTOR 结构
opengl 利用 windows 的 DC 画东西,在画以前要定义 pixel (像素)的格式,例如有 红绿蓝和alpha, 定义的方法就是填写一个数据结构 struct:
PIXELFORMATDESCRIPTOR pfd;

P -- PIXEL 像素
F -- FORMAT 格式
D -- DESCRIPTOR 描述,定义。

PFD_DRAW_TO_WINDOW 等是OpenGL的保留字。应当在头文件 <gl/gl.h> <gl/glu.h> 里

填写:
HDC hDC = GetDC( hWnd );
PIXELFORMATDESCRIPTOR pfd;
ZeroMemory( &pfd, sizeof( pfd ) );
pfd.nSize = sizeof( pfd );
pfd.nVersion = 1;
pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL |
PFD_DOUBLEBUFFER;
pfd.iPixelType = PFD_TYPE_RGBA;
pfd.cColorBits = 24;
pfd.cDepthBits = 16;
pfd.iLayerType = PFD_MAIN_PLANE;
int iFormat = ChoosePixelFormat( hDC, &pfd );
SetPixelFormat( hDC, iFormat, &pfd );

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com