GLFW — это лёгкая кроссплатформенная библиотека на языке C, предназначенная для создания окон, управления контекстами OpenGL, OpenGL ES и Vulkan, а также обработки ввода от клавиатуры, мыши и игровых контроллеров. Библиотека предоставляет минимальный, хорошо документированный API, ориентированный на разработчиков графических приложений, прототипов и учебных проектов, где требуется простое и надёжное создание контекста рендеринга и взаимодействие с системой ввода.
Проект поддерживает основные настольные платформы и обеспечивает абстракцию над различиями между операционными системами в части управления окнами, их состоянием и событиями ввода. GLFW фокусируется на предоставлении фундаментального набора возможностей без включения высокого уровня сценовой логики или средств рендеринга; он часто используется совместно с библиотеками для загрузки OpenGL-расширений, управления ресурсами и построения графических движков.
- Создание и управление окнами: функции для создания окон с заданными размерами и атрибутами, управление полноэкранным режимом, изменение размеров и контроль видимости.
- Контексты графики: создание и привязка контекстов OpenGL, OpenGL ES и Vulkan, указание версий и профилей контекста.
- Обработка событий ввода: коллбэки и обработчики событий клавиатуры, мыши, позиционирования курсора, прокрутки и оконных событий.
- Поддержка игровых контроллеров: обнаружение подключённых джойстиков и геймпадов, получение состояния кнопок и осей.
- Событийная модель: как поллинг событий, так и событийные коллбэки для удобной интеграции в цикл приложения.
- Мониторы и видеорежимы: перечисление доступных мониторов, получение разрешений, частот обновления и управление режимами полноэкранного вывода.
- Временные функции: простые средства для получения точного времени и измерения интервалов в приложении.
- Совместимость и расширяемость: небольшая и переносимая кодовая база, позволяющая интеграцию с другими библиотеками и инструментами для работы с графикой и ресурсами.