我是 GLFW 的新手,我試圖用 C 語言用 GLFW 和 OpenGL 制作最基本的應用程式。我從 GLFW 檔案中獲取了示例代碼:https ://www.glfw.org/documentation.html 。有效。然而,當我包括我的程式的頂部崩潰在GLADglClear(GL_COLOR_BUFFER_BIT);用Thread 1: EXC_BAD_ACCESS (code=1, address=0x0)。當代碼未運行時,不會出現錯誤并且構建成功。我已經嘗試了https://gen.glad.sh/和http://glad.dav1d.de/ 的GLAD 。兩者中的構建僅包括 4.6 版的 GL,Core 而不是 Compatibility。
我現在使用 Macbook Pro 和 M1 Pro,MacOS Monterey 12.0.1。使用brew install.
截圖:
Xcode 專案設定截圖
構建階段螢屏截圖
運行程式時出錯的螢屏截圖
此外,我是 Xcode 的新手,而且我一直使用 CLion 進行編程,因此在嘗試設定所有這些時,我可能會搞砸一些事情。
uj5u.com熱心網友回復:
當我在程式頂部包含 GLAD 時,它會崩潰
glClear(GL_COLOR_BUFFER_BIT);
因為您現在正在呼叫 address 處的函式NULL。Glad 頭檔案的作用是針對每個 GL 函式名稱,例如glClear,它會定義一個前處理器宏來表示 Glad 的內部函式指標:
typedef void (GLAD_API_PTR *PFNGLCLEARPROC)(GLbitfield mask);
GLAD_API_CALL PFNGLCLEARPROC glad_glClear;
#define glClear glad_glClear
您實際上需要gladLoadGLLoader在運行時呼叫以加載所有這些函式指標,在您創建并使其當前要使用的 GL 背景關系之后。
既然使用了 GLFW,就可以glfwGetProcAddress直接作為 _loader 函式使用:
if (!gladLoadGLLoader((GLADloadproc) glfwGetProcAddress)) {
// error out
}
正如高興的自述檔案中所記錄的那樣。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/400278.html
