我一直在更新Node.JS FFI到SDL以使用SDL2。 (https://github.com/Freezerburn/node-sdl/tree/sdl2)到目前爲止,它進行得很順利,我可以成功渲染1600多種彩色紋理而沒有太多問題。然而,我剛開始遇到一個我似乎無法弄清楚的問題,似乎與FFI,GC,Javascript的速度等沒有任何關係。SDL2 - RenderPresent隨機抽取20-30 + ms(在Node.JS FFI調用中)
問題是,當我調用SDL_RenderPresent在啓用VSYNC的情況下,偶爾會每隔幾秒鐘完成一次該調用需要20-30或更多的毫秒。它看起來像是連續發生2-3次。這導致在屏幕上移動的任何東西都會有一個非常簡短但明顯的視覺障礙。剩下的時間,這個調用將花費正常的時間來顯示在正確的時間繪製到屏幕上的任何東西,以便與屏幕同步,並且一切看起來都很平滑。
如果您克隆上述存儲庫,則可以看到此操作。用node-gyp構建它,然後運行test.js. (我可以將測試代碼嵌入到StackOverflow中,但我認爲只需在GitHub上提供完整示例會更容易)需要SDL2,SDL2_ttf和SDL2_image位於/ Library/Frameworks中。 (這仍在開發中,所以沒有什麼特別的想法可以自動查找SDL2,或者在存儲庫中具有所需的代碼,或者從某處取出所需的代碼等)。
編輯:這應該可能會根據gamedev StackExchange站點。不知道它是否可以移動/鏈接或不。