【发布时间】:2013-02-06 19:13:36
【问题描述】:
情况如下:
我有 4 个 SFML 窗口,它们位于我构建的容器内。容器为每个窗口调用独立的重绘方法,从第一个窗口开始,到最后一个窗口结束。
如果每个窗口的绘图代码都包含drawMyCube()或glClear(...)这行,那么帧率就会变慢。
drawMyCube() 只是绘制一个立方体,它根据 sf::Clock 对象的值旋转。
如果一个窗口调用(其中任何一个)这些函数,则帧速率约为 60fps。 如果两个窗口调用(其中任何一个)这些函数,则帧速率约为 30fps。 如果三个窗口调用(其中任何一个)这些函数,则帧速率约为 20fps。 最后,如果所有四个都调用(其中一个)这些函数,则帧速率约为 15fps。
这看起来像是一种正在出现的模式,所以我尝试从 3 个窗口中删除函数,并从一个窗口调用它们 10 次。我原本预计帧速率约为 6fps,但仍保持在 60。
有人知道为什么会这样吗?如果我从窗口绘制方法中删除任何其他功能,似乎没有任何效果,例如,gluLookAt() 似乎没有减慢它。
编辑:帧速率限制设置为零,垂直同步为假。
【问题讨论】:
标签: c++ performance sfml frame-rate