• 1、VS2019配置glfw和glad


    一、下载编译glfw

    1、下载GLFW源码

    Download | GLFW

     

     解压下载的压缩包,并在里面创建“build”文件夹

    2、使用CMake生成工程文件

    打开CMake,选择源码目录和要生成的工程存放目录,点击“Configure”

     选择“Visual Studio 16 2019”,其他默认,点击“Finish”

    等待

     编译完成,点击“Generate”

    Generate 完成

     在“build”文件夹里生成如下东西

     3、使用VS2019生成glfw3.lib

     双击“GLFW.sln”,用VS2019打开,右击“glfw”,选择“设为启动项目”

     

     右击“GLFW3”,选择“重新生成”

     

     

     在“build\src\Debug”文件夹中生成“glfw3.lib”

    4、文件拷贝

    把“Debug”文件夹和“glfw-3.3.8\include”文件夹,复制到一个新建文件夹“OpenGL”文件夹中

     

     

     拷贝结果:新建的OpenGL文件夹中有“Debug”和“include”

     Debug文件夹中有如下两个文件

     include文件夹中有“GLFW”文件夹

     “GLFW”文件夹中有如下两个文件

     

    5、测试见三(与glad一起测试)

    二、下载glad

    1、下载Glad

    https://glad.dav1d.de/

     访问上面的网址,填写如下信息,点击“GENRATE”

    点击“glad.zip”,下载压缩包

     2、文件拷贝

    解压,把“glad\include”文件夹中的“glad”和“KHR”文件夹拷贝到“OpenGL\include”文件夹中

    把glad\src文件夹中的glad.c拷贝到OpenGL文件夹中

     

    三、测试

    1、打开VS2019,创建C++空项目

    更改名称和存储位置

     更改为x64

    2、 配置GLFW和glad

    右击项目名称,选择“属性”

     选择“所有配置”,添加“包含目录”和“库目录”:OpenGL\include和OpenGL\Debug

    添加“附加依赖项”:opengl32.lib和glfw3.lib

    添加“现有项”:glad.c文件

     

     3、测试

    添加“新建项”:main.cpp文件

    把下面的代码拷贝到“main.cpp”文件中

    1. #include <glad/glad.h>
    2. #include <GLFW/glfw3.h>
    3. #include <iostream>
    4. void processInput(GLFWwindow* window);
    5. int main()
    6. {
    7. glfwInit();
    8. glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    9. glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
    10. glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
    11. #ifdef __APPLE__
    12. glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
    13. #endif
    14. GLFWwindow* window = glfwCreateWindow(800, 600, "LearnOpenGL", NULL, NULL);
    15. if (window == NULL)
    16. {
    17. std::cout << "Failed to create GLFW window" << std::endl;
    18. glfwTerminate();
    19. return -1;
    20. }
    21. //GLFW将窗口的上下文设置为当前线程的上下文
    22. glfwMakeContextCurrent(window);
    23. //GLAD
    24. // glad: 加载所有OpenGL函数指针
    25. if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
    26. {
    27. std::cout << "Failed to initialize GLAD" << std::endl;
    28. return -1;
    29. }
    30. // 渲染循环
    31. while (!glfwWindowShouldClose(window))
    32. {
    33. glClearColor(0.2f, 0.3f, 0.3f, 1.0f); //状态设置
    34. glClear(GL_COLOR_BUFFER_BIT); //状态使用
    35. processInput(window);
    36. // glfw: 交换缓冲区和轮询IO事件(按键按下/释放、鼠标移动等)
    37. glfwSwapBuffers(window);
    38. glfwPollEvents();
    39. }
    40. // glfw: 回收前面分配的GLFW先关资源.
    41. glfwTerminate();
    42. return 0;
    43. }
    44. void processInput(GLFWwindow* window)
    45. {
    46. if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS) //摁Esc键退出
    47. glfwSetWindowShouldClose(window, true);
    48. }

     点击“本地Windows调试器”,进行运行测试

     运行结果

     四、参考

    创建窗口 - LearnOpenGL CN

    计算机图形学OpenGL:1.2、GLFW-GLAD_哔哩哔哩_bilibili

  • 相关阅读:
    【IVI】15.1.7 系统稳定性优化篇(LMKD 八)通过填充内存触发lmkd查杀
    大数据学习(3)-hive分区表与分桶表
    如何用arduino去检测声音大小?
    Nginx开启Brotli
    Java实现Unicode与普通字符的转换
    金仓数据库 KingbaseES SQL 语言参考手册 (14. SQL语句:COMMIT 到 CREATE LANGUAGE)
    虚拟数字人/直播/捏脸/3D/metahuman 实时人脸动作捕捉 开发笔记
    Roaring Bitmap 更好的位图压缩算法
    K_A05_001 基于 STM32等单片机驱动8X8点阵模块(MAX7219)显示0-9
    MATLB|电动汽车充放电的最优调度
  • 原文地址:https://blog.csdn.net/Viciower/article/details/127844406