c++通过 Hook 调用每个帧的函数来计算FPS

标签 c++ hook frame-rate calculation

好的,所以我正在制作这个小“程序”并希望能够计算 FPS。我有一个想法,如果我 Hook 一个调用每一帧的函数,我可能会计算 FPS?

这是一个彻底的失败,现在我再次查看这段代码,我发现我认为这可行是多么愚蠢:

int FPS = 0;
void myHook()
{
    if(FPS<60) FPS++;
    else FPS = 0;
}

显然这是一个愚蠢的尝试,虽然不确定为什么我什至在逻辑上认为它可能首先起作用......

但是,是的,是否可以通过 Hook 调用每个帧的函数来计算 FPS?

我坐下来思考可能的方法来做到这一点,但我就是想不出任何办法。任何信息或任何东西都会有所帮助,感谢阅读:)

最佳答案

这应该可以解决问题:

int fps = 0;
int lastKnownFps = 0;

void myHook(){ //CALL THIS FUNCTION EVERY TIME A FRAME IS RENDERED
    fps++;
}
void fpsUpdater(){ //CALL THIS FUNCTION EVERY SECOND
    lastKnownFps = fps;
    fps = 0;
}

int getFps(){ //CALL THIS FUNCTION TO GET FPS
    return lastKnownFps;
}

关于c++通过 Hook 调用每个帧的函数来计算FPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40818963/

相关文章:

c++ - 派生自 QSettings 并存储 QIcon

c++ - 在 struct C++ 中使用 char* 或 char []

c++ - 复制分配相同类型的 C++ lambda

c++ - 绕行 GetComputerNameW

c++ - 如何在 opencv 中计算每秒帧数?

java - Xuggler H264 FPS 编码问题

c++ - 使用 boost::log API 时,有没有办法从发布二进制文件中删除文本文字?

c++ - 如何将 Tortoise Overlays 与我自己的处理程序一起使用

c# - VSTO Windows Hook keydown 事件调用 10 次

video - ffmpeg 中显示的 FPS 与总帧数/持续时间不匹配