【发布时间】:2013-07-15 12:42:34
【问题描述】:
我已搜索但找不到不涉及 XNA 的结果。
基本上,我正在制作一个地图编辑器,它使用附加到表单中面板句柄的 SFML 的 C# 绑定。它以 550 FPS 的速度运行,这导致我的主循环被调用太多,占用了太多资源(10% 的 CPU 用于小型地图编辑器)。
我真的只需要 60 fps,而且我知道这会导致 CPU 使用率下降很多。
有人知道怎么做吗?我听说这是不可能的,因为 WinForms 没有访问图形驱动程序 VSync 设置的功能;但总有办法吧?
谢谢。
【问题讨论】:
-
我认为您的百分比是错字? 10% 对于不断绘制地图来说不算什么。
-
问题是,我不需要 500 FPS,它在不需要的地方施加了不必要的压力。它只是一个 2D 平铺引擎/编辑器,因此它不需要超过 60 fps 甚至 30 fps。我认为 10% 的 CPU 对于每秒渲染 550 次地图来说是很多的;我不需要它渲染那么多。
-
sf::Window::setFramerateLimit 怎么样?你试过了吗?
-
@Hiura 是的,我也尝试过 SetVerticalSyncEnabled。我认为它们不起作用,因为我已将 SFML 窗口放在 WinForms 窗口中,因此我需要更改 WinForms 窗口 FPS。