当前位置:   article > 正文

openGL 学习笔记一:环境配置 vs2022_opengl32.lib

opengl32.lib

前言

最近,开始复习下openGL的新手教程,这里记录下复习笔记。

1.GLFW

GLFW是一个专门针对OpenGL的C语言库,它提供了一些渲染物体所需的最低限度的接口。它允许用户创建OpenGL上下文,定义窗口参数以及处理用户输入,GLFW可以从它官方网站上获取。下载页http://www.glfw.org/download.html

选32位就行,最新版本稳定版本 :glfw-3.3.4,下载源码包之后,将其解压并打开。

我们只需要里面的这些内容:

  • 编译生成的库
  • include文件夹

接下来我们下载CMake,来编译下本地库。

2.CMake

我们需要从下面下载CMaKe:这里http://www.cmake.org/cmake/resources/software.html下载安装CMake,这没有什么好说的。

接下来,打开CMake开始配置,CMake需要一个源代码目录和一个存放编译结果的目标文件目录。源代码目录我们选择GLFW的源代码的根目录,然后我们新建一个 build 文件夹,选中作为目标目录。点击Finish 会自动编译完成:

编译如下:生成的工程文件会在你的build文件夹中。 

 在build文件夹里可以找到GLFW.sln文件,用Visual Studio 2022 打开。因为CMake已经配置好了项目,所以我们直接点击Build Solution(生成解决方案)按钮,然后编译的库glfw3.lib(注意我们用的是第3版)就会出现在src/Debug文件夹内。

接下来,找到IDE或者编译器的/lib/include文件夹,添加GLFW的include文件夹里的文件到IDE的/include文件夹里去。用类似的方法,将glfw3.lib添加到/lib文件夹里去。

3.VS2022

惯例,先说开发工具:这里用VS2022微软官方最新版本:Visual Studio Preview率先访问 Visual Studio 2019 的未来。 立即获取预览,并使用 Visual Studio 中尚未发布的新功能https://visualstudio.microsoft.com/zh-hans/vs/preview/#download-preview

由于学习用,下载个人开发版(Community)就行:

 下载完毕,打开Visual Studio Installer 勾选以下安装项:

 

下面这项可选:

4.环境配置

我们首先进入Project Properties(工程属性,在解决方案窗口里右键项目),然后选择VC++ Directories(VC++ 目录)选项卡(如下图)。在下面的两栏添加目录:

现在VS可以找到所需的所有文件了。最后需要在Linker(链接器)选项卡里的Input(输入)选项卡里添加glfw3.lib这个文件:

opengl32.lib已经包含在Microsoft SDK里了,它在Visual Studio安装的时候就默认安装了。

 我们只需将opengl32.lib添加进连接器设置里就行了。

GLFW的安装与配置就到此为止。

5.配置GLAD

GLAD是一个开源库,github地址如下:开源https://github.com/Dav1dde/gladGLAD的配置与大多数的开源库有些许的不同,GLAD使用了一个在线服务:在线服务http://glad.dav1d.de/在这里我们能够告诉GLAD需要定义的OpenGL版本,并且根据这个版本加载所有相关的OpenGL函数。

打开GLAD的在线服务,大致如下:

我们需要将语言(Language)设置为C/C++,在API选项中,选择3.3以上的OpenGL(gl)版本。之后将模式(Profile)设置为Core,并且保证生成加载器(Generate a loader)的选项是选中的。都选择完之后,点击生成(Generate)按钮来生成库文件。

GLAD现在应该提供给你了一个zip压缩文件,包含两个头文件目录,和一个glad.c文件。将两个头文件目录(gladKHR)复制到你的Include文件夹中,并添加glad.c文件到你的工程中。

现在,配置已经完成,我们新建一个m.cpp 文件(main.cpp)

输入以下代码,创建一个opengl窗口:

  1. #include <glad/glad.h>
  2. #include <GLFW/glfw3.h>
  3. #include <iostream>
  4. void framebuffer_size_callback(GLFWwindow* window, int width, int height);
  5. void processInput(GLFWwindow *window);
  6. //设置窗口的宽高
  7. const unsigned int SCR_WIDTH = 800;
  8. const unsigned int SCR_HEIGHT = 600;
  9. int main()
  10. {
  11. //初始化glfw
  12. glfwInit();
  13. glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
  14. glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
  15. glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
  16. //创建窗口
  17. GLFWwindow* window = glfwCreateWindow(SCR_WIDTH, SCR_HEIGHT, "LearnOpenGL", NULL, NULL);
  18. if (window == NULL)
  19. {
  20. std::cout << "Failed to create GLFW window" << std::endl;
  21. glfwTerminate();
  22. return -1;
  23. }
  24. glfwMakeContextCurrent(window);
  25. glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
  26. if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
  27. {
  28. std::cout << "Failed to initialize GLAD" << std::endl;
  29. return -1;
  30. }
  31. //渲染
  32. while (!glfwWindowShouldClose(window))
  33. {
  34. //输入
  35. processInput(window);
  36. //事件
  37. glfwSwapBuffers(window);
  38. glfwPollEvents();
  39. }
  40. //释放
  41. glfwTerminate();
  42. return 0;
  43. }
  44. void processInput(GLFWwindow *window)
  45. {
  46. if(glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
  47. glfwSetWindowShouldClose(window, true);
  48. }
  49. void framebuffer_size_callback(GLFWwindow* window, int width, int height)
  50. {
  51. glViewport(0, 0, width, height);
  52. }

编译运行,会出现以下窗口,本节配置完毕。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/318286
推荐阅读
相关标签
  

闽ICP备14008679号