LWJGL GLFW 在本机 glfwInit 调用时挂起
LWJGL GLFW hangs on native glfwInit call
我最初在 GameDev stackexchange 上发布了这个问题,但我也会在这里提出这个问题以尝试扩大影响范围,尤其是因为我不确定我的问题是否特定于游戏开发,因为这是 Java 本机调用的问题。
在过去的几个月里,我一直致力于在 LWJGL 中创建自己的游戏引擎供个人使用在构建它时尽可能多地学习。直到最近,当我从 IntelliJ 启动引擎进行测试时,才出现奇怪的行为:
在我单击 运行 大约 6-10 次后,所有后续的 运行 突然需要大约 60 秒才能出现 window。
每当我重新启动我的 PC 时,这个挂起都会重置,我还有 6-10 运行 秒,然后它每次都会再次挂起。
我将问题定位到 glfwInit
,更具体地说是在调用本机方法时:
@NativeType("int")
public static boolean glfwInit() {
long __functionAddress = Functions.Init;
return invokeI(__functionAddress) != 0; // Right here
}
我还注意到这个问题仅在我尝试使用 STBTrueType 库在我的引擎中实现文本支持时才出现。在那之前完全没问题。我尝试删除 TrueType 代码,但没有修复它。
这是我尝试过的事情的列表:
- 正在清除我的临时文件夹以防出现错误或损坏的文件。
- 重新编译并重建整个 LWJGL jar 两次。
- 从 GLFW 源构建
glfw.dll
并将本机 jar 中的 glfw.dll
替换为前者。
- 正在重新安装 Java 并实际升级 JDK 版本(从 13.0.2 到 14.0.2)
- 切换 IDE,即使我怀疑它不起作用。
- 正在更新我的 NVIDIA 驱动程序并重新安装它们。
我对它可能是什么感到很困惑,如果您认为有必要,我非常乐意分享代码、线程转储或调试信息。 Here is the Github repository 使用最新的“错误”代码(引号中的错误是因为我不太确定代码是问题所在。)
非常感谢您的指导。
P.S:请告诉我在 Whosebug 中询问是否比在此处询问更好。
所以我解决了这个问题,事实证明它甚至与编程、STBTrueType 或库本身无关。问题如 in this Whosebug post 所指出的那样,这种挂起行为是由于错误的驱动程序造成的,或者在我的情况下,我的键盘 USB 插入了“错误的”USB 端口。我在开始处理引擎中的文本的同时移动了计算机,因此我错误地将问题与 TrueType 库联系起来。如果您遇到同样的问题,请查看上述 post,或者如果这不起作用,请寻找可能造成干扰的外围设备。
我最初在 GameDev stackexchange 上发布了这个问题,但我也会在这里提出这个问题以尝试扩大影响范围,尤其是因为我不确定我的问题是否特定于游戏开发,因为这是 Java 本机调用的问题。
在过去的几个月里,我一直致力于在 LWJGL 中创建自己的游戏引擎供个人使用在构建它时尽可能多地学习。直到最近,当我从 IntelliJ 启动引擎进行测试时,才出现奇怪的行为:
在我单击 运行 大约 6-10 次后,所有后续的 运行 突然需要大约 60 秒才能出现 window。
每当我重新启动我的 PC 时,这个挂起都会重置,我还有 6-10 运行 秒,然后它每次都会再次挂起。
我将问题定位到
glfwInit
,更具体地说是在调用本机方法时:@NativeType("int") public static boolean glfwInit() { long __functionAddress = Functions.Init; return invokeI(__functionAddress) != 0; // Right here }
我还注意到这个问题仅在我尝试使用 STBTrueType 库在我的引擎中实现文本支持时才出现。在那之前完全没问题。我尝试删除 TrueType 代码,但没有修复它。
这是我尝试过的事情的列表:
- 正在清除我的临时文件夹以防出现错误或损坏的文件。
- 重新编译并重建整个 LWJGL jar 两次。
- 从 GLFW 源构建
glfw.dll
并将本机 jar 中的glfw.dll
替换为前者。 - 正在重新安装 Java 并实际升级 JDK 版本(从 13.0.2 到 14.0.2)
- 切换 IDE,即使我怀疑它不起作用。
- 正在更新我的 NVIDIA 驱动程序并重新安装它们。
我对它可能是什么感到很困惑,如果您认为有必要,我非常乐意分享代码、线程转储或调试信息。 Here is the Github repository 使用最新的“错误”代码(引号中的错误是因为我不太确定代码是问题所在。)
非常感谢您的指导。
P.S:请告诉我在 Whosebug 中询问是否比在此处询问更好。
所以我解决了这个问题,事实证明它甚至与编程、STBTrueType 或库本身无关。问题如 in this Whosebug post 所指出的那样,这种挂起行为是由于错误的驱动程序造成的,或者在我的情况下,我的键盘 USB 插入了“错误的”USB 端口。我在开始处理引擎中的文本的同时移动了计算机,因此我错误地将问题与 TrueType 库联系起来。如果您遇到同样的问题,请查看上述 post,或者如果这不起作用,请寻找可能造成干扰的外围设备。