需要支持OpenGL的窗口框架来绑定OpenGL中的视口以此来呈现图形,这里选择使用GLFW,除此之外也使用其他框架
第一步:GLFW环境搭建
一.下载GLFW
[官网链接](OpenGL 库 |GLFW)
下载预编译的二进制文件
解压后目录层级
二.VS项目配置GLFW
步骤
1.右键项目属性->VC++目录->包含目录->添加glfw-3.4下include目录
2.链接器->常规->附加库目录->添加lib-vc2022目录
3.链接器->输入->附加依赖项->写入glfw3.lib----------(就是lib-vc2022目录下链接库)
补充说明:
包含目录仅对本项目有效,外部包含目录是对整个解决方案有效
附加库目录仅对本项目有效,库目录是对整个解决方案有效
步骤3也可以不进行配置附加依赖项,可以使用编译指示
#pragma comment(lib,"glfw3.lib")
三.写入基本GLFW代码
#include <GLFW/glfw3.h>
#pragma comment(lib,"glfw3.lib")
int main()
{
if (!glfwInit())return -1;
GLFWwindow* win = glfwCreateWindow(400, 400, u8"实例", NULL, NULL);
if (!win)
{
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(win);
while (!glfwWindowShouldClose(win))
{
glfwSwapBuffers(win);
glfwPollEvents();
}
return 0;
}
运行后跟随控制台,取消不带控制台可以使用杂注
#pragma comment(linker, "/subsystem:windows /entry:mainCRTStartup")
OpenGL不一个API,是一个规范包含API的功能描述,已经函数的参数规范,具体内部实现,是由显卡制造商来具体实现的
需要找到显卡驱动中的函数指针,然后就可以使用OpenGLAPI
OpenGL的函数的具体实现都存在显卡驱动中,要想调用函数指针(函数声明,加载函数)所有函数指针都需要加载(Windwos)加载函数指针的方式 (动态链接库) 和Linux不一样是基于平台的。
直接使用现成的函数指针库,如GLAD,提供在线生成源码和头文件,不用部署链接库
第二步:下载GLAD函数指针库
在VC++目录中配置glad的头文件后,将生成的c代码加入到项目中
注意:glad的头文件要在glfw之上
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
{
std::cout << "Failed to initialize GLAD" << std::endl;
return -1;
}