当前位置: 首页 > 知识库问答 >
问题:

GLFW的线程设置

何嘉运
2023-03-14

3.5-为什么当我移动窗口或调整窗口大小时,我的应用程序会冻结?

窗口事件循环会被某些操作阻止,如拖动窗口或调整窗口大小,或打开窗口菜单。这是Windows设计的一部分,不能被GLFW更改。如果您希望在这些操作期间继续呈现,您应该从辅助线程呈现。

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

共有1个答案

唐阳飙
2023-03-14

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

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

LWJGL论坛主题:[已解决]LWJGL3未按预期执行线程

 类似资料:
  • 在中设置回调函数时,要使用什么? 我尝试将函数设置为类型<code>void。将其更改为<code>void __stdcall,但如何使用<code>GLFW的<code>typedef,例如<code>GLFW*fun?我认为这是正确的选择。我真的需要一个示例源代码。 顺便说一句,我将GLFW定义为 更新 我的代码是这样的: (我以三种方式做到了) 一 原型。因为在下面,所以这个给我一个编译错

  • GLFW是一个OpenGL的应用框架,支持Linux和Windows。GLFW 主要用来处理特定操作系统下的特定任务,例如 OpenGL 窗口管理、分辨率切换、键盘、鼠标以及游戏手柄、定时器输入、线程创建等等。 更多的效果截图:http://glfw.sourceforge.net/screenshots.html

  • 问题内容: 我写一个简单的应用程序,它涉及三个线程: ,和。 是 生成* 并馈给的生成器类。 * 消耗了 计算平均值。我的号码已经使用该饲料用。用途吃起来。 问题是:: 如果平均值超过中的1E5 ,我想表示停止产生数字。我有一个在需要被打开。我该如何实现? PS:该代码将永久运行,而无需在控制台上打印任何内容,我至今仍未弄清原因!! 问题答案: 您可以使用并将它传递给两个线程,原子类型是可访问的,

  • 问题内容: 给出以下代码: 线程类将定期(通过执行器每5分钟更新一次)myConfigData成员变量。myConfigData的设置是否在“外部”线程中是线程安全的(原子的),还是我必须将每个读写操作都同步到myConfigData变量? 编辑:问题不是ConcurrentHashMap是否是线程安全的(根据Javadoc),而是ConcurrentHashMap本身在myConfigData

  • 问题内容: 我有一个在几个线程中运行的程序。主线程与其他线程共享一个对象,在主线程中,我需要调用: 我怀疑主线程饿了,无法访问。如何提高主线程的优先级,或者默认情况下它是否已高于其他线程? 问题答案: 您在Thread类中有一个setPriority()方法。 检查此javadoc。 将线程优先级设置为最大:

  • 我在Java学习线程,有一个这样的小程序。我创建一个线程,并用它来创建另一个线程。但是我不能改变第二个线程的名称。有人能解释为什么会这样吗?此外,Thread.sleep(100)意味着主线程将Hibernate100毫秒是正确的吗?谢谢。 该计划的结果如下: 编辑:如果我将getName()更改为Thread。currentThread()。getName()然后一切都按预期工作。它们之间有什么