示例SDL程序显示空窗口

3

配置: 使用 awesome 桌面环境的 Arch Linux

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

结果是一个空白窗口(我可以透过它看到我的控制台),位于屏幕中央。即使我按下 mod4+Enter,它也不会与其他窗口平铺在一起。为什么会这样呢?

(我已更新系统、重新安装了 sdl2,但在谷歌上搜索也找不到相关的帮助信息。)


1
尝试使用这个应用程序。我一段时间前写的。它与你的应用程序完全相同,但具有SDL_PollEvent()在此处)。 - Sam Protsenko
@Sam 谢谢,窗口的内容现在完美地显示出来了!很棒。但是平铺功能还有问题,不过那是另一个问题... - dyarob
1
我猜想如果你的窗口要与平铺式窗口管理器良好协作,那么你应该使它(你的窗口)可调整大小,而不是固定大小。 - Sam Protsenko
请考虑为“hello_sdl2”项目提交一个拉取请求来修复这个问题。 - Alexander
1个回答

5
所有的窗口系统都需要你通过处理消息队列来处理消息。请参阅此章节以获取一些SDL特定示例,但实质上是要定期调用SDL_PollEvent或其他SDL函数来处理任何事件。您代码只需暂停一段时间即可。您不能让主线程睡眠并期望窗口系统对此满意。它们运行在事件上。当窗口被映射时,会产生一个事件,然后产生另一个事件来告诉窗口进行绘制或键盘输入。在等待过程中,请清空事件队列。

非常感谢,我现在明白了!你提供的博客也很有趣 :) - dyarob

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接