簡體   English   中英

LWJGL 3.1.6 OpenGL 4.1在macOS High Sierra上崩潰

[英]LWJGL 3.1.6 OpenGL 4.1 crash on macOS High Sierra

我在LWJGL主頁上找到了示例代碼的稍作修改的版本。 它可以工作,但是使用舊版OpenGL 2.1 如果我嘗試使用GLFW doc中描述的前向兼容上下文,則使用的版本為4.1 (無論我提示的是大/小),都會創建該窗口,但在首次調用glPushMatrix() 會崩潰

啟用前向兼容性,如下所示:

glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

我在控制台中打印的一些信息:

LWJGL 3.1.6 build 14
OS name Mac OS X
OS version 10.13.4
OpenGL version 4.1 ATI-1.66.31

正在記錄:

[LWJGL] A function that is not available in the current context was called.
Problematic frame:
C  [liblwjgl.dylib+0x1c494]

從這里我不知道要尋找什么。 該代碼是否可以正常工作? 還是我錯過了一些儀式? 許多資源已經過時,這使得解決問題變得更加困難。

glPushMatrix不是針對Core Profile上下文的函數,而是針對OpenGL <3.2的函數。

如果要使用它(和其他核心前功能),則需要兼容上下文,而不是前向兼容上下文,也不需要Core配置文件

GLFW提示應該像這樣,而不要求提供Core Profile。

glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_COMPAT_PROFILE);

該驅動程序可能會提供最高的可用版本,但也具有所有舊功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM