gpt4 book ai didi

c++ - 尝试在 openGL 中创建空白窗口时出现异常输出

转载 作者:太空宇宙 更新时间:2023-11-04 05:51:54 27 4
gpt4 key购买 nike

我试图在 GLFW 的帮助下在 OpenGL 中创建一个空白窗口。下面是我的代码

#include <stdio.h>
#include <stdlib.h>

#include <GL/glew.h>

#include <glfw3.h>
GLFWwindow* window;

#include <glm/glm.hpp>
using namespace glm;

int main( void )
{

glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);
window = glfwCreateWindow(800,600,"learnopengl",NULL,NULL);
if (window == NULL)
{
fprintf(stderr,"there is a problem with window creation\n");
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);

glewExperimental = GL_TRUE;
if (glewInit() != GLEW_OK)
{
fprintf(stderr,"Failed to initialize GLEW\n");
return -1;
}
int width, height;
glfwGetFramebufferSize(window,&width,&height);

glViewport(0,0,width,height);

while(!glfwWindowShouldClose(window))
{
glfwPollEvents();
glfwSwapBuffers(window);
}


glfwTerminate();
}

但是当我尝试运行上面的代码而不是黑色空白时,它会在新创建的窗口中显示我当前屏幕的一个实例。

最佳答案

为什么您认为这段代码会产生一个空白窗口?

根据规范,交换缓冲区后后台缓冲区的内容将变为未定义(最初,它们当然也是未定义的)。结果,你应该得到的输出也是未定义的,基本上任何东西都可能出现。

如果您想要一些已定义的输出,请将 glClear(GL_COLOR_BUFFER_BIT) 添加到您的渲染循环。

关于c++ - 尝试在 openGL 中创建空白窗口时出现异常输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38803954/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com