VS2022 + OpenGL GLFW Windows环境配置

VS2022 + OpenGL GLFW Windows环境配置,第1张

VS2022 + OpenGL GLFW Windows环境配置

目录
  • VS2022 + OpenGL GLFW Windows环境配置
    • 0. 前言
    • 1. 一些介绍
    • 2. Visual Studio及C++基础环境配置
    • 3. GLFW配置
    • 4. GLAD配置
    • 5. Hello World!

0. 前言

因为一些需求,我需要用OpenGL写一些东西,本来是要Linux的,这里选择在Windows上搭配宇宙第一IDE Visual Studio进行编码,然后在Linux上进行编译运行,后面会再补一个Linux的环境配置(其实也就几行)。这篇博客主要起备忘作用,以及给一些小朋友们看一下。

1. 一些介绍

首先简单介绍一下OpenGL,它仅仅是一套标准而非具体实现,它的实现是交给厂商去做的,这是基于C/C++的一个库,既然是库,就要绑定语言,此处我选择的是 宇宙最强语言 C++,上文提到OpenGL只是一个接口规范,比较常见的如GLFW、GLUT等等,那么我们就要选择库实现版本,我大概搜了一下别的教程,普遍都是选择的GLUT安装,这玩意上次更新在1998年,那时候C语言还不支持随处定义变量名,中国还没入世,我还没出生,早就被弃用的东西了,我也是不懂怎么这么多怀旧精神这么强的人
关联一些链接:
OpenGL官网
Khronos官网
GLFW官网
推荐教程
本文链接

2. Visual Studio及C++基础环境配置

本文默认你安好了,没安好的自己去官网下一个就行,一般是推荐安装2022 community(我个人是用的2022 community preview,于本文区别不大),如果你是别的版本的,自行对照后文更改就行,此处不加赘述。

3. GLFW配置

首先新建一个C++项目

在项目名上右键,选择管理NuGet程序包。

输入glfw,点击安装

这样就算安完了

4. GLAD配置

打开GLAD在线服务,选择OpenGL版本、设置Profile为Core,然后点击生成。

会得到这样一个压缩包,下载下来

解压后直接把include文件夹拖到你编译器安装位置的include里


找不到这个位置的同学可以在解决方案资源管理器(Ctrl + ;)的外部依赖项里面随便查看一个文件的属性

可以看到它的完整路径,这个include文件夹就是我们需要的位置。

把src文件夹拖到你的项目源文件里

5. Hello World!

最后测试一下我们配置好了没有,输入以下代码(测试代码来自: 链接):

#include
#include

#include

void framebuffer_size_callback(GLFWwindow* window, int width, int height);
int main()
{
    glfwInit();
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
    //glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);

    GLFWwindow* window = glfwCreateWindow(800, 600, "LearnOpenGL", NULL, NULL);
    if (window == NULL)
    {
        std::cout << "Failed to create GLFW window" << std::endl;
        glfwTerminate();
        return -1;
    }
    glfwMakeContextCurrent(window);

    if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
    {
        std::cout << "Failed to initialize GLAD" << std::endl;
        return -1;
    }

    glViewport(0, 0, 800, 600);

    glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);

    while (!glfwWindowShouldClose(window))
    {
        glfwSwapBuffers(window);
        glfwPollEvents();
    }
    glfwTerminate();
    return 0;
}

void framebuffer_size_callback(GLFWwindow* window, int width, int height)
{
    glViewport(0, 0, width, height);
}

如果顺利出现了一个名为“LearnOpenGL”的窗口,说明配置顺利,完结撒花!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/2990487.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-23
下一篇 2022-09-23

发表评论

登录后才能评论

评论列表(0条)

保存