linux - SDL 窗口似乎被操作系统错误地标记为 'unresponsive'

标签 linux ubuntu sdl d derelict3

我有一个通过 Derelict 3 访问的 SDL2 窗口。

它应该是黑白频闪(不是因为我讨厌癫痫病患者),而且它成功地做到了这一点。然而,在一段时间后,Ubuntu 13.10 会将窗口标记为“无响应”,将其变灰,并使频闪效果变暗。

这非常令人恼火,并且完全破坏了视觉刺激应用程序从我的 EEG 耳机检索 SSVEP 读数所需的效果。

如何让我的操作系统意识到窗口正在做它应该做的事情?

代码

由于我已将 SDL 调用包装在实际代码中,因此我将提供伪代码和在这些部分中调用的 SDL 方法(我已检查过我没有调用任何其他 SDL 函数):

make a window using SDL_CreateWindow (no set flags)
make a renderer using SDL_CreateRenderer (with presentvsync flag set)
for( ... )
{
  fill screen black using SDL_RenderFillRect and SDL_SetRenderDrawColor
  update screen using SDL_RenderPresent
  fill screen white (same as above filling)
  update screen (same as above update)
}
exit

我迂腐地检查包装器库中所有 SDL 调用的错误代码和返回值。他们都很好。我需要知道的是我必须添加什么来向我的操作系统提供心跳,以便它停止使我的窗口变灰。

另一件事...

有人可以添加一个 SDL2 标签吗? SDL2 的 API 与 SDL1.2 非常不同...

最佳答案

通过SDL_PollEvent(null)将事件处理添加到循环中。这满足了操作系统的要求。

关于linux - SDL 窗口似乎被操作系统错误地标记为 'unresponsive',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18167542/

相关文章:

linux - 如何安装 pecl_http ubuntu

linux -/用户/bin/ld : Cannot find SDL?

c++ - 高 CPU 使用率 OpenGL Ver 3.1 + SDL2

c - 确定 SDL_surface 的宽度/高度的 SDL_function?

c# - 在 Linux 上运行 .NET Core——什么都不写

java - 如何构建自定义 Linux 发行版?阅读下面的描述

php - 奇怪的Linux文件写入

postgresql - 优化同一命令的多次执行 - Docker

python - 在 conda 环境下在 Ubuntu 上运行 gunicorn

linux - TIAM57xx 上 Linux 中的 USB HID 小工具 "g_hid"