<二> 初探openl,创建一个窗口

<二> 初探openl,创建一个窗口配置好环境后 我们开始创建一个窗口

大家好,欢迎来到IT知识分享网。

  配置好环境后,我们开始创建一个窗口。

#include <glad/glad.h> #include <GLFW/glfw3.h> glfwInit();  -- 初始化glfw --此函数用于配置glfw,第一个参数接受需要配置的key,后面为值
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR,
3);  --设定使用的主版本 glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);  --设定使用的次版本 glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); --使用核心版本 GLFWwindow* window = glfwCreateWindow(800, 600, "LearnOpenGL", NULL, NULL); --创建窗口,接受长,宽,窗口名字,后面填NULL,暂时忽略 if (!window) { glfwTerminate(); --失败则执行退出 return -1; } glfwMakeContextCurrent(window); -- 使用window作为当前主上下文 if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) //使用opengl函数前先初始化glad,这样opengl的方法才能正常使用 { return -1; } glViewport(0, 0, 800, 600); //设置视口大小,左下角坐标0,0,大小800,600 glfwSetFramebufferSizeCallback(window, framebuffer_size_callback); //注册回调,当窗口改变时候,会执行我们的回调 initShader(window); //这里执行一些初始化操作,就是下节讲的着色器 // 主循环,让窗口不要瞬间消失 while (!glfwWindowShouldClose(window)) { processInput(window); //处理自己的输入操作 draw(); //绘图 glfwSwapBuffers(window); //交换缓冲区,双缓冲机制 glfwPollEvents(); //处理事件 } glfwTerminate(); //注销操作,释放资源 return 0;
}

运行代码,应该会出现一个黑色窗口才对,因为我们啥也没干,所以就这样。

当然我们可以尝试修改一下bg的颜色,我们在主循环里加入下面代码

glClearColor(0.2f, 0.3f, 0.3f, 1.0f); glClear(GL_COLOR_BUFFER_BIT);

用其他颜色来填充背景,第一个方法是设定清理所用的颜色,然后第二个就做清理操作,他就会用这个颜色来填充我们写的GL_COLOR_BUFFER_BIT缓冲区。opengl还有其他缓冲区,例如深度缓冲,模板缓冲等。

 

  对于为什么使用一个循环大家应该都了解,不循环窗口一闪而过,一般游戏引擎里都会存在一个主循环,我们在每一帧里渲染我们需要显示的东西,然后擦掉,期间会出现一个每一帧需要的时间,这个时间可以用于决定我们下一帧的一些操作。

转载于:https://www.cnblogs.com/usp10/p/9272760.html

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/145707.html

(0)
上一篇 2024-11-25 18:26
下一篇 2024-11-25 18:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信