简单的GLFW冻结(疯狂思考,而不是停止)
Simple GLFW freezes (thinks like crazy, not stopping)
我创建了一个非常简单的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((,这给了我遇到的问题。
-
您没有清除缓冲区,因此不会显示清晰的颜色。
您 没有添加任何类型的延迟,因此您正在完全交换空缓冲区("疯狂思考"(。
相关文章:
- Windows.h与GLFW.h的接口
- 无法将 GLFW 库与 Ubuntu 18.04 上的头文件链接
- WIN32:C++,为什么在WM_CLOSE上调用Messagebox函数程序正在冻结
- 如何获取 GLFW 窗口 ID?
- Win32 发送输入鼠标移动滞后并冻结
- GLFW需要链接什么?
- 如何在OpenGL(GLFW,很高兴)中进行2D缩放?
- ImGui 在单击按钮后冻结
- GLFW glfwCreateWindowSurface return -7
- GLFW DDS 加载函数的 OpenGL 链路错误
- QWidget UI 在使用 QQuickWidget 时冻结
- 如何防止 std::thread 在 QT 中冻结 GUI?
- 在 GLFW 窗口中显示 FFMPEG 解码帧
- Adafruit 羽毛RFM69HCW在使用过程中会冻结,需要硬重置
- GLFW 切换布尔切换
- MFC/C++ ComboBox:禁用下拉列表关闭和打开(UI 冻结)的绘制
- 同时使用Opengl CORE函数以及Comptability Profile - GLFW
- 对GLFW / Vulkan的未定义引用,尽管库似乎是链接的
- 无法让 cmake 链接到 GLFW 库
- 简单的GLFW冻结(疯狂思考,而不是停止)