gpt4 book ai didi

c++ - 简单的 GLFW 卡住(像疯了似的思考,没有停止)

转载 作者:行者123 更新时间:2023-11-28 07:24:12 25 4
gpt4 key购买 nike

我创建了一个非常简单的 GLFW 窗口实现。我的实现看起来像这样

// Include standard headers
#include <stdio.h>
#include <stdlib.h>

// Include glfw for window handling
#include <GLFW/glfw3.h>

int SCREEN_WIDTH = 1280;
int SCREEN_HEIGHT = 720;

GLFWwindow* window;

int main() {

if(!glfwInit()) {
fprintf( stderr, "Failed to initialize GLFW!\n" );
return -1;
}

glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_COMPAT_PROFILE);


window = glfwCreateWindow(SCREEN_WIDTH, SCREEN_HEIGHT, "Title", NULL, NULL);
if( !window )
{
fprintf( stderr, "Failed to create window!\n" );
glfwTerminate();
return -1;
}

glClearColor(0.0f, 0.0f, 1.0f, 0.0f);

do {
glfwSwapBuffers(window);

} while(!glfwGetKey(window, GLFW_KEY_ESCAPE));

glfwTerminate();
return 0;
}

它编译得很好,但是当我运行应用程序时它只是“卡住”,没有显示正确的清晰颜色或任何东西。它只是疯狂地思考(Windows 7 中的“思考”-光标图标旋转并且永不停止)。我想知道为什么它会这样卡住,有人知道吗?

编辑:
找到了解决我的问题的方法。我正在从一个 GLFW2 示例中学习,但是拥有最新版本 (GLFW3) 需要我重做一些代码;我没有意识到的是 glSwapBuffers(window) 调用本身不会调用 glfwPollEvents(),这给了我遇到的问题。

最佳答案

  1. 您没有清除缓冲区,因此没有显示清晰的颜色。

  2. 您没有添加任何类型的延迟,所以您正在完全交换空缓冲区(“疯狂思考”)。

关于c++ - 简单的 GLFW 卡住(像疯了似的思考,没有停止),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19015749/

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