OpenGL学习记录【创建初始窗口】
#include <iostream>#define GLEW_STATIC//告诉编译器使用static版本的glew
#include <GL/glew.h>
#include <GLFW/glfw3.h>//引用opengl档头
//为了配置好Opengl我一开始下载的vs2022 但是一直报错并且无法运行,恕我没有能力理解这些错误为什么会出现,我只能卸载了vs2022并重新安装了vs2019,幸运的是这次成功运行了,并且没有我无法理解的报错
int main() {
glfwInit();//初始化
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);//该段告诉我们想要配置什么,我们可以从中选择一个大枚举作为_glfw的备用前缀(英文不太好,只能这么理解了)
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);//配置GLFW,一个整数,为我们的option设置一个值(所有可能的选项和对应的值都可以在GLFW'S window handling文档中列出,如果现在运行了程序并报错未定义的引用这意味着没有成功引用到glfw档头)
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);//保证初始化代码能够工作
//Open GLFW Window,下面创建一个窗口对象,并且包含了所有其他窗口对象所需要的窗口数据
GLFWwindow* window = glfwCreateWindow(800, 600, "MY OPGLGL GAME", NULL, NULL);//glfwCreateWindow函数需要窗口高度和宽度分别做为前两个参数,第三个参数是设置窗口的名称
if (window == NULL)
{
printf("opengl window failed.");
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);//告诉glfw将窗口的上下文当作当前线程的主上下文(上下文是什么意思呀我基础不太好
//Init GLEW
glewExperimental = true;
if (glewInit() != GLEW_OK)
{
printf("Init GLEWfailed.");
glfwTerminate();
return -1;
}
glViewport(0, 0, 800, 600);//在进行渲染之前告诉OpenGL窗口的尺寸,这样OpenGL就能知道我们想要的窗口数据和坐标,我们通过glViewport函数设置这些尺寸
while (!glfwWindowShouldClose(window))
{
glfwSwapBuffers(window);//双缓冲确保了屏幕不会出现闪烁错误,而且确保了实时刷新,一个缓冲区用于显示,另一个缓冲区用于渲染计算
glfwPollEvents();
}
glfwTerminate();
return 0;
//一旦我们想要推出渲染循环,我们想要正确的删除或者清理glfw‘s的资源,我们可以通过在主函数的末尾调用glfwTerminate函数来做到这一点(这个函数看起来经常被调用
}
最后运行代码,窗口正常跳出
为啥vs2022会报错,没引入库吗?
引入了,但是它一直提示报错,步骤和vs2019一样,感觉是版本问题 weiya909 发表于 2023-3-16 14:01
为啥vs2022会报错,没引入库吗?
引入了,但是它一直提示报错,步骤和vs2019一样,感觉是版本问题
页:
[1]