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, существует руководство по переходу на API GLFW 3.
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 и более поздние версии. Linux и другие Unix-подобные системы, работающие под управлением X Window System, поддерживаются даже без среды рабочего стола или современных расширений, хотя для некоторых функций требуется работающий менеджер окон или буфера обмена. Бэкэнд OSMesa требует Mesa 6.3.
Дополнительную информацию см. в руководстве по совместимости в документации.
Самому GLFW требуется только CMake 3.16 или новее, а также заголовки и библиотеки для вашей ОС и оконной системы.
Примеры и тестовые программы зависят от множества крошечных библиотек. Они расположены в каталоге deps/
.
Документация создается с помощью Doxygen, если CMake может найти этот инструмент.
Об ошибках сообщается в нашу систему отслеживания проблем. Пожалуйста, ознакомьтесь с руководством по участию, чтобы узнать, что следует указывать при сообщении об ошибке.
GLFW_UNLIMITED_MOUSE_BUTTONS
, который позволяет сообщать о кнопках мыши за пределами количества токенов кнопок мыши (# 2423).QuartzCore
в качестве зависимости времени компоновки.glfwInit
выдавал ошибку на наборщике без места (#2517).VK_EXT_headless_surface
EGL_MESA_platform_surfaceless
GLFW_CONTEXT_CREATION_API
установленным на GLFW_NATIVE_CONTEXT_API
(#2518). На glfw.org вы можете найти последнюю версию GLFW, а также новости, документацию и другую информацию о проекте.
Если у вас есть вопросы, связанные с использованием GLFW, у нас есть форум.
Если вам нужно сообщить об ошибке, отправить исправление или функцию, которую вы хотите запросить, отправьте ее в систему отслеживания проблем на GitHub.
Наконец, если вы хотите помочь в разработке GLFW или портировать его на свою любимую платформу, присоединяйтесь к нам на форуме или GitHub.