代码之家  ›  专栏  ›  技术社区  ›  Athan Clark

GPipe VSync和FPS

  •  0
  • Athan Clark  · 技术社区  · 9 年前

    我开始学习 GPipe library ,并想知道有人如何用它实现vsync和FPS控制。最初,我认为一个单独的线程可以阻止 1 * 1000000 / FPS 微秒并运行 swapContextBuffers ,但这意味着单独的线程需要 建筑 它自己的 ContextT ,因此它是自己的窗口。

    这个 docs on the function itself 简要提到如果启用VSync,它可能会阻塞 在系统中 -这意味着什么?我如何启用它?

    1 回复  |  直到 9 年前
        1
  •  1
  •   Tobias Bexelius    9 年前

    设置交换间隔是OpenGl中特定于窗口管理器的。对于GLFW,您需要致电 glfwSwapInterval 不幸的是,你不能自己在GPipe中完成,因为你的ContextT运行的线程没有当前的GL上下文。这实际上应该在GPipe GLFW的上下文创建中实现,即在 newContext' .

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