2012-06-02 78 views
1

我希望能夠在沒有鎖定幀率的情況下運行我的遊戲(當前爲60 fps)。我發現運行動畫的唯一方法是使用NSTimer。有沒有一種方法可以在Cocoa中擁有無限制的幀率。如果是這樣,一個鏈接或代碼片段將大大幫助。可可OpenGL解鎖幀速率

+2

繪圖速度比顯示器刷新速度還快嗎?你只是在浪費CPU週期。如果您使用'CVDisplayLink',則保證您的繪圖速度與顯示屏一樣快。 –

+0

@RobKeniger我這樣做主要是爲了瞭解一幀的完成速度,以便我能夠確定是否可以對諸如碰撞檢測和phong照明等事情進行更復雜和更準確的計算。我無法真正做到這一點,因爲我有一個鎖定的幀率,不能告訴CPU可以處理多少幀。 –

+2

@Chase:當然可以。只需使用高精度定時器來測量等待下一幀開始花費的時間。 –

回答

7

如果您確實想要這樣做,您可能需要使用CGL界面。在有效的GL上下文中,CGLGetCurrentContext返回(不透明)上下文對象。 CGLSetParameter可用於設置kCGLCPSwapInterval參數的值。值(0)禁用等待vsync。

4

這使我能夠避開每秒〜700架在我的MacBook Pro

它也不是永久的,完美的測試/基準測試。

Source

+0

這仍然適用於10.9?我必須嘗試。只需設置舊的答案中所述的交換間隔就不再適用於我了。 –

+0

是的,它在我的機器上運行OS X 10.9.4 – cevaris

+0

轉到工具 - >顯示光束同步工具不再存在於最新的工具,想法? – daslicht