欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

OpenGL学习之旅(四)—visual studio下glfw、glad的配置

程序员文章站 2022-07-14 08:05:54
...

visual studio下glfw、glad的配置

之前已经进行了VS2010下的OpenGL的glut环境搭建,可是看到现在专业的学习网站learnOpenGL采用的是OpenGL3.3和GLFW的学习指导,为此,我今天特意重新配置了一下编程环境。看到各个大佬给出的配置方案,小白想整个简洁点的,刚好我的VS版本最低,可以当做实验。

GLFW

GLFW是一个专门针对OpenGL的C语言库,它提供了一些渲染物体所需的最低限度的接口。允许用户创建OpenGL上下文,定义窗口参数以及处理用户输入。

GLFW号称lightweight的OpenGL框架,是一个轻量级的,开源的,跨平台的library。GLFW的开发目的就是用于替代glut的,这也是为什么升级编程配置的主要原因。
glut确实太老了,最后一个版本还是90年代的。
freeglut作为glut的替代品,但可惜bug较多。

本文参照learnOpenGL完成GLEW配置

首先进入GLFW官网进行资源下载,注意一定要选择DOWNLOAD页面,选取32位安装包
OpenGL学习之旅(四)—visual studio下glfw、glad的配置
非首页下载,非选择64位(和你的电脑型号是两码事)
OpenGL学习之旅(四)—visual studio下glfw、glad的配置

OpenGL学习之旅(四)—visual studio下glfw、glad的配置
STEP01
下载源码包之后,将其解压并打开。我们只需要里面的这些内容:
编译生成的库(根据版本自行选择,我的版本2010,即lib–VC2010)
include文件夹
如果之前选择的文件并不是我这个,你还需要使用Cmake进行处理呢,这里直接选定自己vs年份版本的库文件就可以了。

STEP02
找到IDE或者编译器的/lib和/include文件夹,添加GLFW的include文件夹里的文件到IDE的/include文件夹里去。用类似的方法,将glfw3.lib添加到/lib文件夹里去。
(这里也可以参照之前的我的glut配置方法。)

STEP03

为了使我们的程序使用GLFW,我们需要把GLFW库链接(Link)进工程。这可以通过在链接器的设置里指定我们要使用glfw3.lib来完成,但是由于我们将第三方库放在另外的目录中,我们的工程还不知道在哪寻找这个文件。于是我们首先需要将我们放第三方库的目录添加进设置。

要添加这些目录(需要VS搜索库和include文件的地方),我们首先进入Project Properties(工程属性,在解决方案窗口里右键项目),然后选择VC++ Directories(VC++ 目录)选项卡(如下图)。在下面的两栏添加目录:
OpenGL学习之旅(四)—visual studio下glfw、glad的配置
这里参照glfw的那个文件夹目录就好啦,glad文件后期我们会讲到,这里是由于我的IDE报错,补充的。

STEP04
在Linker(链接器)选项卡里的Input(输入)选项卡里添加glfw3.lib这个文件,
在链接库之前,我们必须告诉链接器它的文件名。

OpenGL学习之旅(四)—visual studio下glfw、glad的配置
至此,glfw的配置基本完成,但要想实现OpenGL的整体环境
01
这里还需要加入opengl.lib,(Windows内置了,所以这里直接链接就好啦,见上图链接器截图)
02
因为OpenGL只是一个标准/规范,具体的实现是由驱动开发商针对特定显卡实现的。由于OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要在运行时查询。所以任务就落在了开发者身上,开发者需要在运行时获取函数地址并将其保存在一个函数指针*以后使用。取得地址的方法因平台而异,在Windows上会是类似这样:
所以出现了GLAD库来简化该过程。

STEP05

打开GLAD的在线服务,将语言(Language)设置为C/C++,在API选项中,选择3.3以上的OpenGL(gl)版本(我们的教程中将使用3.3版本,但更新的版本也能正常工作)。之后将模式(Profile)设置为Core,并且保证生成加载器(Generate a loader)的选项是选中的。现在可以先(暂时)忽略拓展(Extensions)中的内容。都选择完之后,点击生成(Generate)按钮来生成库文件。

GLAD现在应该提供给你了一个zip压缩文件,包含两个头文件目录,和一个glad.c文件。将两个头文件目录(glad和KHR)复制到你的Include文件夹中(或者增加一个额外的项目指向这些目录),并添加glad.c文件到你的工程中。(直接拖动到你的vs项目的源文件即可,或者复制到那个地方)

至此,完成了OpenGL的GLEW的所有配置。

STEP06

采用GLFW官网提供的窗口代码,检验一下环境


```cpp
#include <GLFW/glfw3.h>

int main(void)
{
    GLFWwindow* window;

    /* Initialize the library */
    if (!glfwInit())
        return -1;

    /* Create a windowed mode window and its OpenGL context */
    window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
    if (!window)
    {
        glfwTerminate();
        return -1;
    }

    /* Make the window's context current */
    glfwMakeContextCurrent(window);

    /* Loop until the user closes the window */
    while (!glfwWindowShouldClose(window))
    {
        /* Render here */
        glClear(GL_COLOR_BUFFER_BIT);

        /* Swap front and back buffers */
        glfwSwapBuffers(window);

        /* Poll for and process events */
        glfwPollEvents();
    }

    glfwTerminate();
    return 0;
}

`
衷心感谢learnOpenGL这个志愿团队。

相关标签: 小白大战OpenGL