如何在简单的Direct2D应用程序中计算FPS?
-
02-10-2019 - |
题
大家好,感谢您的查看。我已经从MSDN构建了简单的D2D应用程序,可用 这里. 。现在,我想绘制一些原语,并添加FPS计数器。
我有一个onRender()事件,我在其中绘制矩形等等。我还打电话给RenderTextInfo(),我在其中调用RenderTarget-> drawText。我在哪里添加以计数每秒帧数的逻辑?
非常感谢。
解决方案
我不知道确切的Direct2D内容,但这可能会有所帮助。
基本上,您有两种选择。绘制框架时,要么更新帧速率,要么每秒(或任何其他时间间隔)。
如果您在绘制框架时对其进行计数,则可以在绘制框架时简单地获取当前时间,然后从绘制最后一帧的时间中减去它。这让您花时间绘制此框架。它的倒数(即1/x)是帧率。
如果您按常规时间间隔进行计数,则需要在每个间隔内进行一些事件触发,以检查自该事件上一次触发以来绘制多少帧。除以您的间隔(如果是一秒钟,您当然不需要划分),这就是您的FPS计数。每次绘制框架时,都不要忘记增加一些计数器。
不隶属于 StackOverflow