Visual Studio 2022 搭建GLFW OpenGL开发环境

这篇具有很好参考价值的文章主要介绍了Visual Studio 2022 搭建GLFW OpenGL开发环境。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近工作需要 需要写一个全景的视频播放器

网上搜了下大概解决方案是 ffmpeg+opengl

b站有很多视频  按照视频 搭建了OpenGL的开发环境

先去GLFW的网站下载 windows平台的库文件

为什么使用GLFW  因为GLFW是跨平台的   我下的是64位版本解压后有目录如下

 Visual Studio 2022 搭建GLFW OpenGL开发环境

 包含了动态库和静态库 这里我们使用静态库 mt那个是multithread 多线程版本的Visual Studio 2022 搭建GLFW OpenGL开发环境

An OpenGL library | GLFW

Visual Studio 2022 搭建GLFW OpenGL开发环境

打开VS 新建一个控制台的新项目

添加一个main.cpp文件

添加以下代码

#include "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);
        glBegin(GL_TRIANGLES);

        glVertex2f(-0.5f,-0.5f);
        glVertex2f(0.0f, 0.5f);
        glVertex2f(0.5f, -0.5f);
        
        glEnd();


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

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

    glfwTerminate();
    return 0;
}

项目工程目录

Visual Studio 2022 搭建GLFW OpenGL开发环境

 Visual Studio 2022 搭建GLFW OpenGL开发环境

Visual Studio 2022 搭建GLFW OpenGL开发环境

 Visual Studio 2022 搭建GLFW OpenGL开发环境

 工作目录添加了一个3rd的目录用来存放第三方的库这里使用的是静态库glfw3.lib

设置工程属性 添加头文件目录 C/C++ 常规

Visual Studio 2022 搭建GLFW OpenGL开发环境

 添加lib库目录 如下 链接器常规那里

Visual Studio 2022 搭建GLFW OpenGL开发环境

 设置lib库文件名 这里主要是glfw3.lib 和 opengl32.libVisual Studio 2022 搭建GLFW OpenGL开发环境

F5 直接编译运行  出来如下三角形窗口 到此opengl的环境就搭建好了

 Visual Studio 2022 搭建GLFW OpenGL开发环境

后来看到教程又说 上面的方法调用的opengl是比较老的版本  需要用到一个glew或者glad的东西来 用

去这里下载glew 直接选择编译好的二进制版本

The OpenGL Extension Wrangler Library download | SourceForge.net

解压过后如下图

还是使用静态库

Visual Studio 2022 搭建GLFW OpenGL开发环境

引入头文件  之后的步骤和之前一致  修改下代码

#include "glew.h"
#include "glfw3.h"


#include   <iostream>

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);

    if (glewInit() != GLEW_OK)
    {
        std::cout << "glewInit failed" << std::endl;
    }


    std::cout << glGetString(GL_VERSION);
     

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

        glVertex2f(-0.5f,-0.5f);
        glVertex2f(0.0f, 0.5f);
        glVertex2f(0.5f, -0.5f);
        
        glEnd();


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

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

    glfwTerminate();
    return 0;
}

但是我试了 不管 加不加glew  打印的版本都是 如下

Visual Studio 2022 搭建GLFW OpenGL开发环境

20230509 更新增加GLAD内容

根据中文的文档内容

创建窗口 - LearnOpenGL CN (learnopengl-cn.github.io)

Visual Studio 2022 搭建GLFW OpenGL开发环境

进入GLAD官网

https://glad.dav1d.de

Visual Studio 2022 搭建GLFW OpenGL开发环境

 我选择最新的4.6版本 opengl core模式

点击Generate之后  生成了一个zip包 下载这个压缩包

Visual Studio 2022 搭建GLFW OpenGL开发环境

新建一个空的项目 

添加对应的文件 和 依赖项 之后  main.cpp改成如下代码

#include "glad/glad.h"
#include "glfw3.h"

void framebuffer_size_callback(GLFWwindow* window, int width, int height);
void processInput(GLFWwindow* window);

// settings
const unsigned int SCR_WIDTH = 800;
const unsigned int SCR_HEIGHT = 600;

int main()
{
    // glfw: initialize and configure
    // ------------------------------
    glfwInit();
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

#ifdef __APPLE__
    glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
#endif

    // glfw window creation
    // --------------------
    GLFWwindow* window = glfwCreateWindow(SCR_WIDTH, SCR_HEIGHT, "LearnOpenGL", NULL, NULL);
    if (window == NULL)
    {
        std::cout << "Failed to create GLFW window" << std::endl;
        glfwTerminate();
        return -1;
    }
    glfwMakeContextCurrent(window);
    glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);

    // glad: load all OpenGL function pointers
    // ---------------------------------------
    if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
    {
        std::cout << "Failed to initialize GLAD" << std::endl;
        return -1;
    }

    // render loop
    // -----------
    while (!glfwWindowShouldClose(window))
    {
        // input
        // -----
        processInput(window);

        // render
        // ------
        glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
        glClear(GL_COLOR_BUFFER_BIT);

        // glfw: swap buffers and poll IO events (keys pressed/released, mouse moved etc.)
        // -------------------------------------------------------------------------------
        glfwSwapBuffers(window);
        glfwPollEvents();
    }

    // glfw: terminate, clearing all previously allocated GLFW resources.
    // ------------------------------------------------------------------
    glfwTerminate();
    return 0;
}

// process all input: query GLFW whether relevant keys are pressed/released this frame and react accordingly
// ---------------------------------------------------------------------------------------------------------
void processInput(GLFWwindow* window)
{
    if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
        glfwSetWindowShouldClose(window, true);
}

// glfw: whenever the window size changed (by OS or user resize) this callback function executes
// ---------------------------------------------------------------------------------------------
void framebuffer_size_callback(GLFWwindow* window, int width, int height)
{
    // make sure the viewport matches the new window dimensions; note that width and 
    // height will be significantly larger than specified on retina displays.
    glViewport(0, 0, width, height);
}

能够正常显示如下窗口了 

Visual Studio 2022 搭建GLFW OpenGL开发环境

 文章来源地址https://www.toymoban.com/news/detail-435037.html

到了这里,关于Visual Studio 2022 搭建GLFW OpenGL开发环境的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Visual Studio 2022 cmake配置opencv开发环境

    这里我用的是 widnows 10 64位 , Visual Studio 用的 Visual Studio Community 2022 (社区版) 对于 Android 开发工程师来说,为什么要使用 Visual Studio 呢 ? 因为在 Visual Studio 中开发调试 OpenCV 方便,可以开发调试好后,再移植到 Android 中。 官方地址在这里 : 官方下载地址 不过官方下载地址可能

    2024年02月07日
    浏览(80)
  • visual studio 2022 社区版 c# 环境搭建及安装使用【图文解析-小白版】

    首先,进入其官网下载对应的visual studio社区版本,官网链接: https://visualstudio.microsoft.com/zh-hans/ 双击.exe文件进行安装: 大概20GB左右,需要耐心等待 选择安装的组件,c#和.net以及一些扩展 安装位置不建议更改,改了容易出现问题。 选择完毕后,点击安装 安装完毕,稍后其会自

    2023年04月09日
    浏览(46)
  • Visual Studio 2022使用CMake+MinGW+Clang+LLDB作为开发环境

    笔者前面写了两篇关于Visual Studio 2022使用MinGW的博文:《Visual Studio 2022使用MinGW来编译调试C/C++程序》、《Visual Studio 2022 CMake+MinGW+GDB 调试目标程序》,这两篇博文都是介绍的是GCC+GDB的编译与调试,本文笔者介绍的则是Clang+LLDB的编译与调试。读完本文,读者可以在GCC、Clang与

    2024年02月06日
    浏览(61)
  • 基于 Visual Studio 配置 opengl 环境

    Visual Studio 2022 glfw glad Visual Studio 2022 打开链接,看到如下界面: 傻瓜式安装即可,如果不知道需要安装什么环境,可以什么都不装。 glfw 打开链接,看到如下界面: 注意下载 win32 版本。 glad 打开链接,看到如下界面: 选择上述内容后,点击 generate。跳转后下载出现的安装包

    2024年02月05日
    浏览(38)
  • Visual Studio 2017下的C++开发环境搭建

    Visual Studio 是Microsoft旗下的开发工具包系列产品,是一个基本完整的开发工具集,它包括整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等,是最流行的Windows平台应用程序的集成开发环境。 Visual Studio 适用于 Windows 上 .NET 和 C++ 开

    2024年02月13日
    浏览(49)
  • 【C# 基础精讲】C# 开发环境搭建(Visual Studio等)

    安装C#开发环境是开始学习和使用C#编程的第一步。目前,最常用的C#开发环境是Microsoft Visual Studio,它是一套强大的集成开发环境(IDE),提供了丰富的工具和功能,使开发C#应用程序变得更加便捷。以下是安装Visual Studio的简单步骤: 步骤1:下载Visual Studio 访问Microsoft官方网

    2024年02月14日
    浏览(34)
  • C语言学习1--------Visual Studio集成开发环境的搭建

    建议初学者适用最新的——Visual Studio 2019为集成开发环境。 部分学校可能正在适用——VC++6.0,全称是Visual C++6.0。在当今的角度来看,VC++6.0已经比较古老,几乎没有公司会以VC++6.0作为开发环境进行开发了。 可能有些人认为Visual Studio太过庞大,并且项目组织较为复杂,不太适

    2024年02月08日
    浏览(45)
  • MatlabR2022b + Visual Studio环境配置

    在Matlab中输入 mex -setup c++ 命令确认MEX使用VS2022编译环境。 VC++目录-包含目录-添加 D:Matlab2022bexterninclude VC++目录-库目录-添加 D:Matlab2022bexternlibwin64mingw64 D:Matlab2022bexternlibwin64microsoft 链接器-输入-添加 D:Matlab2022bexternlibwin64mingw64libmat.lib D:Matlab2022bexternlibwin64mingw

    2024年02月10日
    浏览(32)
  • 如何在Visual Studio 2022中配置OpenCV环境

    Visual Studio下载链接 Open CV下载链接 注意:环境配置所有流程中使用到的路径均为个人下载安装软件对应路径!! 【高级系统配置】——【环境变量】——【系统变量-Path】               双击【Path】,进入后点击【新建】,输入红框中所示路径(路径请注意修改为自己

    2024年02月08日
    浏览(50)
  • Visual Studio 2022 搭建跨平台 Linux 项目

    在平时开发 Linux 项目时,都是使用 vim 进行编辑,当然, vim 是一个十分强大的编辑器,不过在涉及到 Windows 的其它工具时,又要从虚拟机切换回来,虽然有快捷键,但是,很是不爽。 另外通过这种方法,VS 还提供了代码提示等功能。 甚至可以将 Linux 驱动开发的代码切换到

    2024年02月08日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包