美文网首页
glfw创建窗口

glfw创建窗口

作者: 3c1b8ae8346c | 来源:发表于2021-08-25 17:16 被阅读0次

opengl开发时 使用glfw库创建窗口的流程,简单归纳一下

  1. glfw库可以帮助我们创建一个opengl上下文和一个用于显示的窗口
  2. 要使用glfw,先得去网站上下载
  3. 然后将源码编译完成后,在cmake工程中使用target_link_libraries将编译好的库文件引用进来,使用include_directorie将相关头文件引用到工程里
  4. 如果是window,在visiual stuido 里面需要引用opengl32.lib, linux需要链接-GL
  5. GLAD可以帮助我们确定函数地址,我们可以把源码下载下来,放入工程中

最后是具体创建窗口的代码实现
1.先初始化glfw,并且设置相关的参数
2.使用glfwCreateWindow创建窗口
3.将新建的窗口设置为opengl当前的上下文窗口
4.使用glad查找opengl的函数地址, 然后就可以开始使用opengl相关的函数
5.循环将颜色数据绘制到屏幕上

#include <iostream>
#include <glad/glad.h>
#include <GLFW/glfw3.h>

using namespace std;

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

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

int main()
{
    cout << "Hello World!" << endl;

    //glfw初始化
    glfwInit();
    //设置opengl版本
    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);
//    glfwWindowHint(GLFW_VISIBLE, GL_FALSE);//如果需要离屏渲染,可以隐藏窗口

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

    //调用opengl 函数前需要初始化glad
    if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
    {
        std::cout << "Failed to initialize GLAD" << std::endl;
        return -1;
    }
    glViewport(0, 0, 800, 600);

    //当用户窗口大小调整的时候, opengl的视口也要进行调整
    glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);

    while(!glfwWindowShouldClose(window))//检查是否需要退出
    {
        glfwSwapBuffers(window);//检查是否有触发事件
        glfwPollEvents();//把颜色绘制到屏幕上
    }

    glfwTerminate();
    return 0;
}

相关文章

  • glfw创建窗口

    opengl开发时 使用glfw库创建窗口的流程,简单归纳一下 glfw库可以帮助我们创建一个opengl上下文和...

  • LearnOpenGL 创建一个窗口

    参考 learnOpenGl 你好,窗口 使用GLFW+GLAD创建一个OpenGL的窗口 glfwWindowH...

  • 2.GLFW创建窗口

    一.工程相关代码如下: 二.相关解析: 1. 关于 glViewport : OpenGL幕后使用glViewpo...

  • 升级opengl

    有时候用GLFW创建窗口会返回NULL,原因一般是oepngl版本过低 下载安装OpenGL Extension ...

  • OpenGL(2)-窗口

    写在前面 通过本节,你可以毫不费力的--->创建一个窗口 OpenGL中窗口,即载体 导入头文件 初始化glfw窗...

  • OpenGL(一)第一个窗口

    1.初始化:初始化GLFW 创建窗口 上下文 初始化GLAD 创建视口 2.数据处理:生成和绑定VBO VA...

  • GLFW1——画三角形

    glfw的这个简单例子,在mac上稍微有些不同。 GLEW没有,直接注释掉即可 兼容性问题,在创建窗口前要调用这行...

  • Qt OpenGL

    引言 OpenGL学习过程中需要配置各种各样的第三方库,比如使用GLFW用于创建OpenGL上下文,定义窗口参数以...

  • Self-learningOpenGL系列——环境搭建

    OpenGL环境搭建,创建HelloWorld工程 构建GLFW GLFW是一个专门针对OpenGL的C语言库,它...

  • Dragon Engine:窗口

    本节介绍窗口的实现。这里使用开源库GLFW,之前也介绍过,只不过这里的主要任务就是将GLFW的API抽象出来,方便...

网友评论

      本文标题:glfw创建窗口

      本文链接:https://www.haomeiwen.com/subject/bvcuiltx.html