GPipe VSync 和 FPS

GPipe VSync & FPS

我开始学习 GPipe library,并且想知道如何使用它来完成 vsync 和 FPS 控制。最初,我认为一个单独的线程可以每隔 1 * 1000000 / FPS 微秒和 运行 swapContextBuffers 阻塞一次,但这意味着单独的线程需要 构建 它自己的 ContextT,因此它自己的 window.

docs on the function itself 简要提到如果在系统中启用垂直同步 它可能会阻塞 - 这是什么意思?我将如何启用它?

设置交换间隔特定于 OpenGl 中的 window 管理器。如果是GLFW,则需要调用glfwSwapInterval. Unfortunately, you cannot do it yourself in GPipe since the thread your ContextT is running on doesn't have the GL context current. This should really be implemented in GPipe-GLFW's context creation instead, i.e. inside newContext'.

不,您不能在 GPipe 中异步交换缓冲区(但即使可能,您也不想这样做)。