在Win32程序中创建OpenGL渲染环境
- 选定像素格式
//WinMain()
HDC dc = GetDC(hwnd);
PIXELFORMATDESCRIPTOR pfd;
memset(&pfd, 0, sizeof(PIXELFORMATDESCRIPTOR));
pfd.nVersion = 1;
pfd.nSize = sizeof(PIXELFORMATDESCRIPTOR);
pfd.cColorBits = 32;//颜色缓冲区每像素占32 bit
pfd.cDepthBits = 24;//深度缓冲区每像素占24bit,这24bit表示浮点数
pfd.cStencilBits = 8;//蒙版缓冲区每像素占8bit
pfd.iPixelType = PFD_TYPE_RGBA;
pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
int pixelFormat = ChoosePixelFormat(dc, &pfd);//选择一种像素格式,windows会根据pfd从若干中像素格式中选出一种合适的
SetPixelFormat(dc, pixelFormat, &pfd);//设置像素格式
- 创建渲染环境
//WinMain()
HGLRC rc = wglCreateContext(dc);
- 使渲染环境生效
//WinMain()
wglMakeCurrent(dc, rc);
- 渲染环境生效后,使用gl函数前,简单的方法是使用glewInit()来获取各自显卡gl函数的实现。之后就可以使用OpenGL绘图了。