提问人:Tima Chedr 提问时间:6/15/2023 最后编辑:Rabbid76Tima Chedr 更新时间:6/15/2023 访问量:86
如何同时使用函数glfwPollEvents和glfwWaitEvents?
How to use functions glfwPollEvents and glfwWaitEvents simultaneously?
问:
所以基本上,glfwPollEvents 在渲染一些整洁的模型或场景时用于实时图形引擎。
glfwWaitEvents 在其他方面用于 UI 和基于回合制的应用程序,当不需要连续渲染时(仅在需要时重绘),我的引擎中有我的自定义编辑器和场景视口。我想以这样一种方式拆分它们,以便在需要时更新编辑器(使用 glfwWaitEvents)。但是对于场景视口,我想使用 glfwPollEvent(因为连续渲染)。那么我怎样才能做到这一点呢?
我不能在一个线程中使用它们,因为glfwWaitEvents会阻塞主线程(glfwPollEvents也会被阻塞),直到某个事件累积。 我也尝试过使用多线程解决方案,但据我所知,所有 OpenGL 绘制调用都必须从单线程完成。 目前,我的解决方案是我使用的是glfwWaitEvents,当需要进行一些重绘时,我的引擎会调用glfwEmptyEvent(用于唤醒我被阻止的线程)。那么最好的方法是什么呢?
答: 暂无答案
评论
if (editorMode) { glfwWaitEvents(); } else { glfwPollEvents(); }
glViewport