关于Nehe‘s OpenGL tutorial on Win32 Multisampling Application Creation的一些代码分析。
最近的工作需使用OpenGL的MultiSample功能,在不使用glut,glfw等库的情况下,要创建支持Multisampling的OpenGL Render Context对于初学者来讲还是要花一番功夫的。昨天晚上又把Nehe’s OpenGL tutorial里的Lesson 46拿出来看了一下,主要讲的是如何建立支持Multisampling的OpenGL RC。 为了加强理解,现把其代码实现的主要流程整理如下:
(下面的流程图只针对建立RC过程中核心操作进行解析,并不涉及其他诸如 win32 消息循环,OpenGL矩阵设置,图形绘制等方面的内容,主要关注点在于如何建立RC)
由上图可以看出,首先建立一个window,建立临时的RC, 以便获得opengl extension相关函数指针,或者使用glew库,初始化,获得所有opengl函数指针。调用相关函数查询是否支持Multisampling,如果支持,调用wglChoosePixelFormatARB()选择新的pixelformat。由于一个HWND只能设置一个pixelformat,因此我们要使用新的pixelformat需要销毁旧的window,重新生成。重新生成之后,采用新的pixelformat进行常规操作即可。
以上。