[英]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.