美文网首页
LearnOpenGL 创建一个窗口

LearnOpenGL 创建一个窗口

作者: li_礼光 | 来源:发表于2020-09-13 17:34 被阅读0次

参考 learnOpenGl 你好,窗口

使用GLFW+GLAD创建一个OpenGL的窗口


#include "MyOpenglWindow.hpp"
#include <iostream>
#include <glad/glad.h>
#include <GLFW/glfw3.h>



int runMyOpenGlWindow() {
        
    int result = glfwInit();
    if (result == GL_FALSE) {
        printf("glfwInit 初始化失败");
        return -1;
    }
    
    
    //这里的宏不好提示出来, 根据LearnOpenGL的文档提示, 用这三个
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
    //Mac平台需要加入
    glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GLFW_TRUE);

    //创建一个Window
    GLFWwindow *window = glfwCreateWindow(600, 400, "My Opengl Window", NULL, NULL);
    if(!window) {
        printf("window 创建失败");

    }
    
    
    //Makes the context of the specified window current for the calling thread.
    //opengl运行模式 -- 单线程, 理解为跟当前的Window做一次绑定操作.
    //多个线程同时调用不被允许
    glfwMakeContextCurrent(window);

    
    //进行绘制
    while(!glfwWindowShouldClose(window)){
        glfwSwapBuffers(window);
        glfwPollEvents();
    }
    
    
    //程序销毁
    glfwTerminate();
    
    return 1;
}



glfwWindowHint函数的第一个参数代表选项的名称,我们可以从很多以GLFW_开头的枚举值中选择;第二个参数接受一个整形,用来设置这个选项的值。

我们需要告诉GLFW我们要使用的OpenGL版本是3.3,这样GLFW会在创建OpenGL上下文时做出适当的调整。这也可以确保用户在没有适当的OpenGL版本支持的情况下无法运行。我们将主版本号(Major)和次版本号(Minor)都设为3。我们同样明确告诉GLFW我们使用的是核心模式(Core-profile),并且不允许用户调整窗口的大小。在明确告诉GLFW使用核心模式的情况下,使用旧版函数将会导致invalid operation(无效操作)的错误,而这不正是一个很好的提醒吗?在我们不小心用了旧函数时报错,就能避免使用一些被废弃的用法了。如果使用的是Mac OS X系统,你还需要加下面这行代码到你的初始化代码中这些配置才能起作用.

简单粗暴的可以理解是 : 配置当前OpenGL的版本信息.

PS: 这里的宏在Xcode下, 不太好自动打印补全. 所以这里就根据官方文档的来设置应该就没问题了.

效果图 :

Window

.

就是一个黑窗. 没有任何的内容. 因为这里只是创建一个窗口.


如果简单粗暴的理解 , 创建一个窗口的流程是:

  • glfwInit
  • glfwWindowHint
  • glfwCreateWindow
  • glfwMakeContextCurrent
  • while (glfwWindowShouldClose) {
  • glfwSwapBuffers
  • glfwPollEvents
  • }
  • glfwTerminate

相关文章

  • LearnOpenGL 创建一个窗口

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

  • OpenGL学习之环境搭建(一)

    万事开头难,要想学习OPENGL,第一步骤便是搭建环境 参考:创建窗口 - LearnOpenGL CN 下面是根...

  • 新建一个窗口程序

    新建一个窗口程序 消息机制 创建窗口的几个步骤 创建窗口类 注册窗口类 创建窗口 显示窗口 构建消息循环 创建过程...

  • LearnOpenGL 创建Program和Shader

    创建Program流程 glCreateProgram glAttachShader glLikeProgram ...

  • SDL 创建窗口

    创建一个窗口的过程 _ 自带梯子哦~ 首先来了解一下SDL窗口创建的流程 SDL初始化 创建一个窗口 获取到这个窗...

  • 创建窗口

  • 游戏窗口

    1.3 创建游戏主窗口 pygame专门提供一个 模块 pygame.display ,用于创建、管理 游戏窗口...

  • UIAlertController

    UIAlertController 创建一个警告窗口 创建一个动作表单

  • electron学习---BrowserWindow对象

    创建和控制浏览器窗口。 无边框窗口 优雅地显示窗口 父子窗口 模态窗口 模态窗口是禁用父窗口的子窗口,创建模态窗口...

  • LearnOpenGL 入门篇

    官方教程 :LearnOpenGL-CN[https://learnopengl-cn.readthedocs.i...

网友评论

      本文标题:LearnOpenGL 创建一个窗口

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