繁体   English   中英

尝试在打开的GL中创建空白窗口时出现异常输出

[英]Unusual output when trying to Create a blank window in open GL

我正在尝试在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)添加到渲染循环中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM