由于在learnopengl的文档中使用了glfw+glad的组合,因此许多学习imGUI+opengl的同学希望能够将glad集成进入imGUI进行学习,如何安装以及在vs中配置glad这里不再赘述(glad在线服务:https://glad.dav1d.de/),其他帖子有大量教程,本文简单讲讲在使用imGUI时如果想要使用glad来加载库函数需要注意的一些地方。注意glad.h头文件一定要放在其他所有头文件之前,也就是文档最上方。
1.移除链接库中的opengl32.lib
尽管很多imGUI或opengl配置教程中有通过这个库来加载库函数,但是这并不是正确的方法,在使用这个库的时候会经历多次的转发和扩展才能真正调用到库函数,这里如果想要使用glad来进行库函数的加载,首先在链接器中移除这个库,只保留glfw等其他必要的库。
2.在获取gl上下文后使用gladLoadGL()加载库函数
如果没有这一步,在后续使用诸如glViewport()\glClear()等库函数时会与gl.h中的库函数产生访问冲突,这一点在配置imGUI时尤其重要,因为其原本的示例程序中通常不使用glad。