GLFW 是一個用於 OpenGL、OpenGL ES 和 Vulkan 應用程式開發的開源多平台函式庫。它提供了一個簡單的、獨立於平台的 API,用於建立視窗、上下文和表面、讀取輸入、處理事件等。
GLFW 原生支援 Windows、macOS 和 Linux 以及其他類別 Unix 系統。 Linux 上同時支援 Wayland 和 X11。
GLFW 根據 zlib/libpng 授權獲得許可。
您可以下載最新的穩定版本作為原始程式碼或 Windows 二進位。從 3.0 開始的每個版本都有一個相應的註釋的標籤,其中包含原始程式碼和二進位存檔。
該文件可在線獲取,並包含在所有原始碼和二進位檔案中。請參閱發行說明,以了解最新版本中的新功能、警告和棄用內容。有關更多詳細信息,請參閱版本歷史記錄。
master
分支是穩定的整合分支,應始終在所有支援的平台上編譯和運行,儘管新添加的功能的詳細資訊可能會發生變化,直到它們包含在版本中。新功能和許多錯誤修復存在於其他分支中,直到它們足夠穩定可以合併。
如果您是 GLFW 新手,您可能會發現 GLFW 3 教程很有用。如果您過去曾使用過 GLFW 2,可以查看遷移到 GLFW 3 API 的轉換指南。
GLFW 的存在是因為世界各地許多人的貢獻,無論是報告錯誤、提供社群支援、新增功能、審查或測試程式碼、偵錯、校對文件、建議功能或修復錯誤。
GLFW 主要是用 C99 編寫的,部分 macOS 支援是用 Objective-C 編寫的。 GLFW 本身只需要作業系統和視窗系統的頭檔和函式庫。它不需要上下文創建 API(WGL、GLX、EGL、NSGL、OSMesa)或渲染 API(OpenGL、OpenGL ES、Vulkan)的任何附加標頭來啟用對它們的支援。
GLFW 支援在 Windows 上使用 Visual C++ 2013 及更高版本、MinGW 和 MinGW-w64 進行編譯,在 macOS 上使用 Clang 進行編譯,以及在 Linux 和其他類別 Unix 系統上使用 GCC 和 Clang 進行編譯。它也可能在其他環境中編譯,但這沒有定期測試。
Windows 和 macOS 上所有支援的編譯器都有預先編譯的二進位。
有關如何自行編譯 GLFW 的更多信息,請參閱編譯指南。
請參閱教學、指南和 API 參考文件。
有關更多信息,請參閱貢獻指南。
GLFW 支援 Windows XP 及更高版本以及 macOS 10.11 及更高版本。即使沒有桌面環境或現代擴展,也支援運行 X Window 系統的 Linux 和其他類 Unix 系統,儘管某些功能需要運行視窗或剪貼簿管理器。 OSMesa 後端需要 Mesa 6.3。
有關詳細信息,請參閱文件中的相容性指南。
GLFW 本身只需要 CMake 3.16 或更高版本以及作業系統和視窗系統的標頭和函式庫。
範例和測試程序依賴許多小型庫。它們位於deps/
目錄中。
如果 CMake 可以找到該工具,則使用 Doxygen 產生該文件。
錯誤會報告給我們的問題追蹤器。請查看貢獻指南,以了解有關報告錯誤時應包含哪些內容的資訊。
GLFW_UNLIMITED_MOUSE_BUTTONS
輸入模式,允許報告超出滑鼠按鈕標記限制的滑鼠按鈕 (#2423)QuartzCore
框架作為連結時依賴項glfwInit
在沒有座位的合成器上會出現段錯誤 (#2517)VK_EXT_headless_surface
添加了 Vulkan「視窗」表面創建EGL_MESA_platform_surfaceless
在 Mesa 上加入了 EGL 上下文創建GLFW_CONTEXT_CREATION_API
設定為GLFW_NATIVE_CONTEXT_API
(#2518) 在 glfw.org 上,您可以找到最新版本的 GLFW,以及有關該項目的新聞、文件和其他資訊。
如果您對 GLFW 使用有疑問,我們有一個論壇。
如果您有要報告的錯誤、要提交的補丁或想要請求的功能,請將其歸檔到 GitHub 上的問題追蹤器中。
最後,如果您有興趣協助開發 GLFW 或將其移植到您喜歡的平台,請加入我們的論壇或 GitHub。