Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

GLFW - это легкая служебная библиотека для использования с OpenGL . GLFW расшифровывается как Graphics Library Framework. Он предоставляет программистам возможность создавать и управлять окнами и контекстами OpenGL, а также управлять вводом с помощью джойстика , клавиатуры и мыши .

Архитектура программного обеспечения [ править ]

GLFW - это небольшая библиотека C, которая позволяет создавать и управлять окнами с контекстами OpenGL, что также позволяет использовать несколько мониторов и видеорежимов. Он обеспечивает доступ к вводу с клавиатуры, мыши и джойстиков. [3] API предоставляет тонкий, многоплатформенный уровень абстракции, в первую очередь для приложений, единственный вывод графики которых осуществляется через OpenGL API. Хотя GLFW очень полезен при разработке многоплатформенных приложений OpenGL, разработчики одноплатформенных также могут извлечь выгоду из того, что им не придется иметь дело с различными API, зависящими от платформы.

Возможная причина, по которой необходимы библиотеки, подобные GLFW, заключается в том, что OpenGL сам по себе не предоставляет никаких механизмов для создания необходимого контекста, управления окнами, пользовательским вводом, синхронизацией и т. Д. Есть несколько других библиотек, доступных для помощи в разработке OpenGL. Наиболее распространены FreeGLUT (реализация GLUT с открытым исходным кодом) и SDL. Однако FreeGLUT в основном заботится о предоставлении стабильного клона GLUT, в то время как SDL слишком велик для некоторых людей и никогда не имел OpenGL в качестве своей основной задачи. GLFW основан на предположении, что есть место для легкой современной библиотеки для управления контекстами, окнами и вводом OpenGL.

GLFW по замыслу не [4]

  • библиотека пользовательского интерфейса. Это позволяет программисту создавать окна верхнего уровня с контекстами OpenGL. Ни меню, ни кнопок.
  • библиотека только для Windows. Запросы на функции, которые не могут быть реализованы переносимо, будут отклоняться, если они не являются ненавязчивыми, например, когда порт Windows ищет ресурс GLFW_ICON при создании окна.
  • библиотека потоковой передачи. Уже существуют хорошие кроссплатформенные библиотеки потоковой передачи, и многопоточность была добавлена ​​как в стандартные библиотеки C11, так и в C ++ 11.
  • библиотека загрузки изображений. Уже есть хорошие кроссплатформенные библиотеки загрузки изображений. [5]
  • способен отображать текст. Уже существует несколько библиотек, которые визуализируют текст с помощью OpenGL, и согласованная кроссплатформенная визуализация текста в любом случае не может зависеть от средств визуализации текста платформы.
  • способен отображать что угодно. Рендеринг зависит от программиста и / или других библиотек.
  • интегрирован с любым набором инструментов пользовательского интерфейса на любой платформе.
  • может воспроизводить звук.
  • GLUT или SDL .

Привязки языков программирования [ править ]

Хотя GLFW написан на C, существуют привязки для использования API с другими языками программирования, включая Ada , C # , Common Lisp , D , Go , Harbor , Haskell , Java , Python , Rebol , Red , Ruby и Rust , среди прочих. [6]

Back-end [ править ]

GLFW версии 3.2 имеет экспериментальную поддержку Wayland с помощью флагов времени компиляции. [7]

См. Также [ править ]

  • GLUT - устаревший набор инструментов для работы с окнами OpenGL
  • Библиотека OpenGL Extension Wrangler
  • Райлиб
  • Простой слой DirectMedia

Ссылки [ править ]

  1. ^ "Выпуски · glfw / glfw" . github.com . Проверено 10 апреля 2021 .
  2. ^ "Лицензия | GLFW" . glfw.org . Проверено 10 апреля 2021 .
  3. ^ «GLFW: Руководство по вводу» . www.glfw.org . Проверено 7 февраля 2021 .
  4. ^ "GLFW - FAQ" . Проверено 11 июля 2015 года .
  5. ^ "PNG в OpenGL?" . www.xspdf.com . Проверено 7 февраля 2021 .
  6. ^ "Привязки языков программирования GLFW" . Проверено 4 сентября 2019 года .
  7. ^ «GLFW: Новые возможности в 3.2» .

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • glfw на GitHub