在 macOS 上設定現代 OpenGL 4.1(Xcode GLFW 和 GLEW)

1.安裝 GLFW

第一步是建立一個 OpenGL 視窗。GLFW 是一個開源的多平臺庫,用於使用 OpenGL 建立視窗,安裝 GLFW 首先從 www.glfw.org 下載其檔案

StackOverflow 文件

提取 GLFW 資料夾,其內容將如下所示

StackOverflow 文件

下載並安裝 CMake 以構建 GLFW。轉到 www.cmake.org/download/ ,下載 CMake 並安裝 MAC OS X.

StackOverflow 文件

如果沒有安裝 Xcode。從 Mac App Store 下載並安裝 Xcode。

StackOverflow 文件

建立一個新的資料夾中生成的 GLFW 資料夾中

StackOverflow 文件

開啟 CMake,單擊 Browse Source 按鈕選擇 GLFW 資料夾(確保 CMakeLists.txt)位於該資料夾內。之後,單擊 Browse Build 按鈕並在上一步中選擇新建立的 Build 資料夾。

StackOverflow 文件

現在單擊 Configure 按鈕並選擇 Xcode as generator with Use default native compilers 選項,然後單擊 Done

StackOverflow 文件

勾選 BUILD_SHARED_LIBS 選項,然後再次單擊“ 配置” 按鈕,最後單擊“ 生成” 按鈕。

StackOverflow 文件

生成後,CMake 應該是這樣的

StackOverflow 文件

現在開啟 Finder 並轉到 / usr ,建立一個本地資料夾名稱( 如果尚未存在)。開啟本地資料夾並建立兩個資料夾 includelib( 如果尚未存在)。

現在開啟 GLFW 資料夾並轉到 Build (CMake 已經構建了檔案)。在 Xcode 中開啟 GLFW.xcodeproj 檔案。

StackOverflow 文件

選擇安裝>我的 Mac ,然後單擊執行 (播放形狀按鈕)。

StackOverflow 文件

它現在已成功安裝(忽略警告)。

要確保 Open Finder 和 goto / usr / local / lib 資料夾以及三個 GLFW 庫檔案已經存在(如果沒有那麼開啟 GLFW 資料夾中的 Build 資料夾並轉到 src / Debug 將所有檔案複製到 / usr / local / lib

StackOverflow 文件

開啟 Finder 並轉到 / usr / local / include 和一個 GLFW 資料夾,其中有兩個標頭檔案,名稱為 glfw3.hglfw3native.h

StackOverflow 文件

2.安裝 GLEW

GLEW 是一個跨平臺的庫,可以幫助查詢和載入 OpenGL 擴充套件。它提供了執行時機制,用於確定目標平臺上支援哪些 OpenGL 擴充套件。它僅適用於現代 OpenGL(OpenGL 3.2 及更高版本,需要在執行時確定功能)。要安裝,首先從 glew.sourceforge.net 下載其檔案

StackOverflow 文件

提取 GLFW 資料夾,其內容將如下所示。

StackOverflow 文件

現在開啟終端,導航到 GLEW 資料夾並鍵入以下命令

make
sudo make install 
make clean

現在 GLEW 已成功安裝。要確保安裝它的 Open Finder,請轉到 **/ usr / local / include,**並且其中已經存在一個 GL 資料夾,其中包含三個標頭檔案,名稱為 glew.hglxew.hwglew.h

StackOverflow 文件

開啟 Finder 並轉到 / usr / local / lib ,GLEW 庫檔案將在那裡出現

StackOverflow 文件

3.測試並執行

現在我們已經成功安裝了 GLFW 和 GLEW。是時候編碼了。開啟 Xcode 並建立一個新的 Xcode 專案。選擇**命令列工具,**然後繼續,選擇 C++ 作為語言。

StackOverflow 文件

Xcode 將建立一個新的命令列專案。

單擊專案名稱,然後在 Build Settings 選項卡下從 Basic 切換到 All ,在 Search Paths 部分下,在 Header Search Paths 中新增 / usr / local / include 並在 Library Search Paths 中新增 / usr / local / lib

StackOverflow 文件

單擊專案名稱,在 Build Phases 選項卡下,在 Link With Binary Libraries 下新增 OpenGL.framework ,並從 / usr / local / lib 新增最近建立的 GLFWGLEW 庫 ****

StackOverflow 文件

現在我們準備使用 C++和 Xcode 在 macOS 上使用 Modern Open GL 4.1 進行編碼。以下程式碼將使用帶有空白螢幕輸出的 GLFW 建立一個 OpenGL 視窗。

#include <GL/glew.h> 
#include <GLFW/glfw3.h>

// Define main function
int main() 
{
    // Initialize GLFW
    glfwInit();

    // Define version and compatibility settings
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2); 
    glfwWindowHint(GLFW_OPENGL_PROFILE,GLFW_OPENGL_CORE_PROFILE);
    glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); 
    glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);

    // Create OpenGL window and context
    GLFWwindow* window = glfwCreateWindow(800, 600, "OpenGL", NULL, NULL);
    glfwMakeContextCurrent(window);

    // Check for window creation failure
    if (!window) 
    {
        // Terminate GLFW
        glfwTerminate();
        return 0; 
    }

    // Initialize GLEW
    glewExperimental = GL_TRUE; glewInit();

    // Event loop
    while(!glfwWindowShouldClose(window)) 
    {
        // Clear the screen to black
        glClearColor(0.0f, 0.0f, 0.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT);
        glfwSwapBuffers(window);
        glfwPollEvents(); 
    }

    // Terminate GLFW
    glfwTerminate(); return 0;
}

StackOverflow 文件