如何加快应用程序的帧速率

时间:2013-07-06 02:57:56

标签: windows internet-explorer message npapi frame-rate

好的,这就是问题所在。 目前我正在为我的游戏编写OCX / NPAPI插件,因此我的游戏可以在网络浏览器中运行。在当前的实现中,我使用SetTimer来“勾选”我的游戏(插件dll)的更新和渲染,但我发现FPS(每秒帧数)在我的机器上最多只能是64。我发现它是windows计时器的问题,因为计时器只能通过浏览器插件实现的消息查看过程来调用,我无法修改,换句话说,计时器不能比浏览器的进程处理速度快。


所以我的问题是,

  1. 我是否可以打破浏览器消息限制的64帧速率 处理或加速定时器proc?
  2. 或者我应该将我的游戏移动到一个单独的线程,但是如何处理窗口消息(用户输入,窗口大小调整等)以及游戏线程可以接收。
  3. 提前感谢!

1 个答案:

答案 0 :(得分:1)

如果您使用的是窗口插件,那么最好的办法是在单独的线程上进行所有渲染。只需使用某种线程安全队列或其他东西来传递线程中的窗口消息;当然,与互斥体有趣,但它并不是那么难。

如果你正在使用FireBreath(这会为你简化很多),你可以使用一个FB :: SafeQueue类。如果你没有使用FireBreath,你可以窃取它,虽然它需要提升,但无论如何制作线程安全的消息队列并不是那么难。

如果您正在尝试执行所有游戏逻辑的主线程,那么您可能会遇到性能问题。

如果它是一个无窗口的插件,那么你运气不好。