【问题标题】:Sample SDL program gives an empty window示例 SDL 程序给出了一个空窗口
【发布时间】:2015-03-30 01:43:57
【问题描述】:

配置:archlinux 具有很棒的桌面环境

我刚刚安装了 sdl2,并尝试运行此示例代码: https://github.com/xyproto/hello_sdl2/blob/master/c%2B%2B/main.cpp

结果是屏幕中间出现一个空窗口(我可以通过它看到我的控制台)。即使当我点击 mod4+Enter 时,它也不能很好地与其他人平铺。这是为什么呢?

(我更新了我的系统,重新安装了 sdl2。我也找不到任何相关的点击浏览 google。)

【问题讨论】:

  • 试试this app。我前段时间写的。它和你的一样,但有SDL_PollEvent() (here)。
  • @Sam 谢谢,窗口的内容现在可以完美显示了!很棒的平铺没有,但这是另一个问题......
  • 我想你的窗口可以很好地与平铺 WM 一起工作,你应该让它(你的窗口)可以调整大小,而不是固定大小。
  • 请考虑为hello_sdl2 项目提出拉取请求以解决此问题。

标签: c++ sdl-2 archlinux awesome-wm


【解决方案1】:

所有窗口系统都要求您通过抽取消息队列来处理消息。请参阅this chapter 了解一些 SDL 特定示例,但本质是定期调用 SDL_PollEvent 或其他一些 SDL 函数来处理任何事件。您的代码只是延迟了一段时间。您不能让主线程进入睡眠状态并期望窗口系统对此感到满意。他们在事件中运行。当窗口被映射时,有一个事件,然后是另一个告诉窗口自己绘制或键盘输入。等待时抽出事件队列。

【讨论】:

  • 非常感谢,我现在明白了!你链接的博客也很有趣:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-29
  • 1970-01-01
  • 2016-06-22
  • 2014-01-07
  • 2016-05-11
  • 1970-01-01
相关资源
最近更新 更多