gpt4 book ai didi

java - GLFW 的线程设置

转载 作者:搜寻专家 更新时间:2023-11-01 03:56:37 24 4
gpt4 key购买 nike

我开始使用新的 Lwjgl 3,它使用 GLFW 进行显示/鼠标/键盘处理,我真的很喜欢它!但是今天我撞到了一 block 砖。我有一个简单的渲染动画,但是当我拖动屏幕时它停止渲染,直到我再次放手。


根据: http://www.glfw.org/faq.html
问题出现是由于windows。

3.5 - Why does my application freeze when I move or resize the window?

The Windows event loop is blocked by certain actions like dragging or resizing a window, or opening the window menu. This is part of the design of Windows and cannot be changed by GLFW. If you wish to keep rendering during such actions, you should render from a secondary thread.

--http://www.glfw.org/faq.html


我以前用 Java 做过多线程的事情。但我不确定在这种情况下它自己的线程会发生什么。我应该在单独的线程中使用 opengl 代码和 GLFW 代码吗?我也很难想出一种方式来表达我的担忧。

最佳答案

据我所知,唯一真正的限制是 GLFW 需要在应用程序的主线程中。这是 GLFW 的操作系统事件队列所在的位置,也是 glfwPollEvents 和 glfwWaitEvents 需要位于主线程中的原因。

OpenGL 渲染可以从它自己的线程中完成。 glfwMakeContextCurrent 将 OpenGL 上下文与进行该调用的线程联系起来。如果您的渲染函数在它自己的线程上运行,只需确保更新上下文(如演示中所示)。

LWJGL Forum topic: [SOLVED] LWJGL3 Not threading as expected

LWJGL3 Multithreaded Demo referenced in the above link

关于java - GLFW 的线程设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31328280/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com