繁体   English   中英

窗口未关闭GLFW

[英]Window not closing GLFW

我正在用OpenGL和GLFW编写游戏引擎。 但是,以某种方式无法关闭我的窗口。 我尝试了很多事情,但是没有效果。 我的代码有什么问题?

我找不到错误的内容-对我来说一切都很好。

码:

int running;
GLFWwindow* window;

Window::~Window()
{
    glfwTerminate();
}


Window::Window(int width, int height, const std::string& title)
: m_width(width),
m_height(height),
m_title(title){

    glfwInit();

    if (!glfwInit())

    glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);
    window = glfwCreateWindow(height, width, __FILE__, NULL, NULL);
    if (!window) {
        glfwTerminate();

    }

    running = true;

}

void Window::MainLoop()
{

    do
    {
        glfwMakeContextCurrent(window);

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

        Draw();

        glfwSwapBuffers(window);

    }

    while(running);
}

void Window::Draw()
{

    glBegin(GL_TRIANGLES);

    glVertex3f( 0.0f, 1.0f, 0.0f);
    glVertex3f( 1.0f,-1.0f, 0.0f);
    glVertex3f(-1.0f,-1.0f, 0.0f);
    glEnd();
}

谢谢!

有几件事,但问题似乎是您从未设置running = false

尝试使while条件看起来像while(!glfwWindowShouldClose(window));

另外,如果您希望能够通过按while(!glfwWindowShouldClose(window) && glfwGetKey(window_, GLFW_KEY_ESCAPE) != GLFW_PRESS);来关闭窗口,那么它应该可以工作: while(!glfwWindowShouldClose(window) && glfwGetKey(window_, GLFW_KEY_ESCAPE) != GLFW_PRESS);

还可以考虑让int running bool

还有glfwMakeContextCurrent(window); glClearColor(0.2f, 0.3f, 0.3f, 1.0f); 如果您不打算更改它们,则无需进入循环。

有关openGL的更多信息并获得一些基本的理解和工作示例,请阅读https://learnopengl.com/

暂无
暂无

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

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