C ++跨平台纳秒/微秒计时器?

时间:2016-02-19 07:21:29

标签: c++ timer game-engine sdl-2

我目前正在编写一个SDL2游戏引擎,到目前为止它运行良好,但SDL2无法解决一个问题:一个体面的计时器。现在,它使用默认的SDL2计时器,但它只有毫秒支持;这对测量FPS不是很好。主要问题是500FPS和1000FPS之间没有任何东西,所以它是一个或另一个。显然,潜在的游戏玩家会想要比这更准确的东西,并且从这些数字中获得准确的平均值几乎是不可能的。

所以我的问题是,是否有任何时钟库可以在Windows,Mac和Linux上提供纳秒/微秒(最好是前者)时间测量? (甚至可能是Android和iOS,但这有点延伸。)

如果没有,是否每个操作系统都有不同的库我可以#if WINDOWS或者还有什么东西可以获得纳秒/微秒的时间?

编辑:评论指出应该有更多的信息,所以我使用的是C ++ 14,也将在Mac和Linux上使用。在Windows上,我使用MSVC(Visual Studio),我计划在Mac上使用XCode,而对Linux则不太确定。将作为朋友。

3 个答案:

答案 0 :(得分:1)

std::chrono是什么?稳定的时钟可能没问题。

答案 1 :(得分:0)

我最近一直在学习这个新图书馆,我认为它可以帮助你解决问题。

SFML http://www.sfml-dev.org/tutorials/2.3/

SFML /时间 http://www.sfml-dev.org/tutorials/2.3/system-time.php

希望这有帮助。

答案 2 :(得分:0)

GLFW有一个非常准确的计时器。据我所知,这是一个毫秒计时器。 GLFW也是一个非常不错的库,用于窗口管理和输入,如鼠标/键/游戏手柄等。

http://www.glfw.org/docs/3.0/group__time.html