GLFW - GLFW
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
Разработчики) | Команда разработчиков GLFW |
---|---|
Стабильный выпуск | 3.3.2 / 20 января 2020 г.[1] |
Репозиторий | |
Написано в | C |
Операционная система | Linux, macOS, Майкрософт Виндоус, FreeBSD, NetBSD, OpenBSD |
Платформа | Кроссплатформенность |
Тип | API |
Лицензия | zlib / libpng Лицензия[2] |
Интернет сайт | www |
GLFW это легкая служебная библиотека для использования с OpenGL. GLFW расшифровывается как Graphics Library Framework. Он предоставляет программистам возможность создавать и управлять окнами и контекстами OpenGL, а также обрабатывать джойстик, клавиатура и мышь Вход.
Архитектура программного обеспечения
GLFW - это небольшая библиотека C, которая позволяет создавать и управлять окнами с контекстами OpenGL, что также делает возможным использование нескольких мониторов и видеорежимов. Он обеспечивает доступ к вводу с клавиатуры, мыши и джойстиков. API обеспечивает тонкий, многоплатформенный уровень абстракции, в первую очередь для приложений, единственный вывод графики которых осуществляется через OpenGL API. Хотя GLFW очень полезен при разработке многоплатформенных приложений OpenGL, разработчики одноплатформенных также могут извлечь выгоду из того, что им не придется иметь дело с различными API, зависящими от платформы.
Возможная причина, по которой необходимы библиотеки, подобные GLFW, заключается в том, что OpenGL сам по себе не предоставляет никаких механизмов для создания необходимого контекста, управления окнами, пользовательского ввода, времени и т. Д. Есть несколько других библиотек, доступных для помощи в разработке OpenGL. Самые распространенные из них: FreeGLUT (реализация GLUT с открытым исходным кодом) и SDL. Однако FreeGLUT в основном заботится о предоставлении стабильного клона GLUT, в то время как SDL слишком велик для некоторых людей и никогда не ориентировался на OpenGL. GLFW основан на предположении, что есть место для легкой, современной библиотеки для управления контекстами, окнами и вводом OpenGL.
GLFW по замыслу не[3]
- библиотека пользовательского интерфейса. Это позволяет программисту создавать окна верхнего уровня с контекстами OpenGL. Ни меню, ни кнопок.
- библиотека только для Windows. Запросы на функции, которые не могут быть реализованы переносимо, будут отклоняться, если они не являются ненавязчивыми, как, например, порт Windows, который ищет ресурс GLFW_ICON при создании окна.
- библиотека потоковой передачи. Уже есть хорошие кроссплатформенные библиотеки потоковой передачи, и потоки были добавлены как в стандартные библиотеки C11, так и в C ++ 11.
- библиотека загрузки изображений. Уже есть хорошие кроссплатформенные библиотеки загрузки изображений.
- способен отображать текст. Уже существует несколько библиотек, которые визуализируют текст с помощью OpenGL, и согласованная кроссплатформенная визуализация текста в любом случае не может зависеть от средств визуализации текста платформы.
- способен отображать что угодно. Рендеринг зависит от программиста и / или других библиотек.
- интегрирована с любым набором инструментов пользовательского интерфейса на любой платформе.
- может воспроизводить звук.
- GLUT или же SDL.
Привязки языков программирования
Хотя GLFW написан на C, существуют привязки для использования API с другими языками программирования, включая Ада, C #, Common Lisp, D, Идти, Гавань, Haskell, Ява, Python, Ребол, красный, Рубин и Ржавчина, среди прочего.[4]
Бэкэнды
GLFW версии 3.2 имеет экспериментальную поддержку Wayland через флаги времени компиляции.[5]
Смотрите также
- GLUT - Устаревший набор оконных инструментов OpenGL
- Библиотека OpenGL Extension Wrangler
- Райлиб
- Простой слой DirectMedia
Рекомендации
- ^ «История версий GLFW». Получено 18 мая 2020.
- ^ «Лицензия GLFW». Получено 5 июля 2013.
- ^ «GLFW - FAQ». Получено 11 июля 2015.
- ^ "Привязки языков программирования GLFW". Получено 4 сентября 2019.
- ^ «GLFW: Новые функции в 3.2».