为什么窗口没有被绘制?

Why is the window not being drawn?

提问人:Ян Мележ 提问时间:10/16/2023 更新时间:10/16/2023 访问量:61

问:

当我运行下面的代码时,窗口没有出现。输出中没有错误。

// main.cpp
#include <GLFW/glfw3.h>

int main() {
  glfwInit();
  GLFWwindow* window = glfwCreateWindow(640, 480, "My Title", glfwGetPrimaryMonitor(), NULL);
  while (!glfwWindowShouldClose(window)) {
    glfwPollEvents();
  }
  glfwDestroyWindow(window);
  glfwTerminate();
  return 0;
}
# CMakeLists.txt
cmake_minimum_required(VERSION 3.26)

project(app LANGUAGES CXX)

add_executable(${PROJECT_NAME} main.cpp)

find_package(glfw3 REQUIRED)

target_link_libraries(${PROJECT_NAME}
  PUBLIC
    glfw
)

操作系统: Arch Linux x86_64 内核:6.5.7-zen1-1-zen WM:摇摆 1.8.1

~/ pacman -Qs glfw 
local/glfw-wayland 3.3.8-1
    A free, open source, portable framework for graphical application development (wayland)

我正在等待一个应用程序窗口,其名称在我的监视器屏幕上的代码中指定。

C++ CMake GLFW ArchLinux Wayland

评论

0赞 GetSet 10/16/2023
尝试显示其他内容,例如将 Hello World 设置为 stdout。如果可行,请在代码中的其他位置尝试,直到缩小问题陈述的范围。
0赞 Ян Мележ 10/16/2023
@GetSet我试过了。主循环运行良好。没错,窗口应该在它开始之前就出现了。
1赞 Erdal Küçük 10/16/2023
总是检查一个函数的结果,它的值是什么?既然您指定了监视器,那么您的目标是创建窗口化的全屏吗?注意:“要创建全屏窗口,您需要指定窗口将覆盖的显示器”和“对于全屏窗口,指定的大小将成为窗口所需视频模式的分辨率”和“为指定显示器设置了与所需视频模式最匹配的受支持视频模式”(请参阅:glfw.org/docs/latest/...)。window
0赞 Ян Мележ 10/16/2023
@ErdalKüçük 窗口测试和初始化函数测试完成,无失败。这就是我删除检查代码的原因。我不需要全屏应用。我假设如果我明确指定监视器,某些事情会朝着积极的方向变化,但此操作没有成功。窗口未出现,仍然未出现。我已经看过这个文档了。这段代码是用它编写的。

答: 暂无答案