用GLFW+GLAD库已经好一段时间了。但是我还是觉得GLFW不如原生的win32窗口用着顺手,毕竟win32窗口可以自绘加控件等等,可玩性可谓是很高的。
微软给OpenGL留了套东西,不过可惜,哪怕到了Windows 10,这套API都停留在OpenGL 1.x时代。甚至还是用的CPU渲染。新版本的API藏在显卡开发商提供的程序中,我们需要拿到这些API。
说到这里应该你就熟悉了,这些API有一个库可以帮忙——GLAD。而GLAD通过一个回调来拿到这些函数的地址,这个函数类型(我还是愿意给函数一个类型,正如大部分编译器的类型系统实现那样,因此不纠结细节了~)是GLADloadproc,是gladLoadGLLoader函数唯一的参数(截止至今天,2020-07-13)。了解这些之后,我们需要做的问题就是两个:一是实现这个函数,一个是初始化wgl一系列相关的。我们分步来,下面,假如你已经准备好了一个空窗口,现在我们开始干活吧!
step1. 拿到HDC,准备dll模块句柄
WGL是建立在HDC上的,因此,第一步我们需要拿到HDC。而dll其实是为了方便glad,这个一会会说。
hDC = GetDC(hWnd);
glInst = LoadLibraryA("opengl32.dll");
if (glInst == NULL)
{
re