Jump to content

LWJGL

Облегченная библиотека Java-игр (LWJGL)
Оригинальный автор(ы) Каспийский принц
Разработчик(и) Джон Цакпинис
Первоначальный выпуск 4 февраля 2007 г .; 17 лет назад ( 04.02.2007 ) [ 1 ]
Стабильная версия
3.3.4 / 17 июля 2024 г .; 22 дня назад ( 17.07.2024 )
Репозиторий github / lwjgl
Написано в Ява , С , Котлин [ 2 ] [ 3 ]
Операционная система Linux , macOS , Windows , FreeBSD
Платформа Java-платформа
Тип Бесплатная компьютерная библиотека
Лицензия БСД , [ 4 ] некоторые привязки под разными лицензиями [ 2 ]
Веб-сайт лвгл .org

Облегченная библиотека игр Java ( LWJGL ) — это с открытым исходным кодом программная библиотека , которая обеспечивает привязку различных библиотек C для разработчиков видеоигр к Java . Он предоставляет кроссплатформенные библиотеки, обычно используемые при разработке видеоигр и мультимедийных игр, такие как Vulkan , OpenGL , OpenAL и OpenCL .

Основная цель проекта — предоставить разработчикам Java возможность получить доступ к ресурсам, которые в противном случае были бы недоступны или плохо реализованы на существующей платформе Java. Основная философия заключается в том, чтобы представить базовую технологию в виде тонкой оболочки, создавая таким образом API, близкий к оригиналу. Он также является основой многих игровых движков и библиотек Java высокого уровня, таких как libGDX или jMonkeyEngine .

Разработка библиотеки началась в 2002 году с выпуском J2SE 1.4 , в которой использовались недавно добавленные неблокирующие операции ввода-вывода и доступ к памяти вне кучи . Эти дополнения к JDK позволили улучшить доступ к собственной памяти и библиотекам, не являющимся частью JDK. Первый официальный выпуск библиотеки состоялся 4 февраля 2007 года. [ 1 ]

13 ноября 2014 года была анонсирована версия 3, альфа-версия которой была выпущена 27 апреля 2015 года и представляет собой полную переработку LWJGL. [ 5 ] [ 6 ] [ 7 ] Было добавлено множество новых привязок, включая GLFW , EGL и Objective-C . [ 4 ] [ 6 ] Поддержка разработки Oculus Rift также была добавлена ​​с помощью привязок LibOVR. [ 4 ] [ 7 ] Новая версия была выпущена 4 июня 2016 года, после более чем трех с половиной лет разработки. [ 8 ]

Привязки

[ редактировать ]

Библиотека получает доступ к собственному коду C через собственный интерфейс Java (JNI). Привязки к каждой из собственных библиотек существуют в виде отдельных модулей, поэтому разработчики могут создавать собственные сборки только с тем, что им нужно в определенной программе. [ 4 ] [ 7 ] [ 9 ]

Хотя служебные классы написаны на чистом Java , большинство классов привязки автоматически генерируются специальным генератором, реализованным на Kotlin . [ 2 ] [ 3 ]

Начиная с версии 3.1, LWJGL полностью разделен на 51 модуль, которые можно загружать и использовать отдельно. Чтобы упростить этот процесс, проект предоставляет онлайн-конфигуратор сборки, который позволяет пользователям загружать пользовательские комбинации модулей и автоматически генерирует Maven и Gradle , чтобы упростить их использование в существующих проектах. файлы конфигурации [ 10 ] [ 11 ] [ 12 ]

Предоставленные привязки [ 2 ] [ 4 ]
Binding Category Description Notes
EGL Khronos APIs Interface between Khronos rendering APIs and the underlying native platform window system.
OpenCL API for cross-platform parallel computing.
OpenGL 3D graphics specification implemented by most GPU vendors. Most extensions are supported, but less popular ones will be added on request.
OpenGL ES OpenGL for embedded systems like mobile phones, tablets, or consoles.
Vulkan Upcoming cross-platform 3D graphics API.
GLFW Display and Input Window management library needed for handling OpenGL and Vulkan contexts as well as user input.
JAWT AWT native interface.
nfd Small cross-platform native file dialogs library.
tinyfd Small native dialog library.
OpenAL Audio Three-dimensional audio API. ALC and other extensions are supported. Specifically bundles the OpenAL Soft implementation.
Opus Open, royalty-free audio codec.
Assimp Graphics Portable open source library to import various 3D model formats.
bgfx Cross-platform rendering library supporting multiple graphics backends.
DriftFX Library to render OpenGL content into JavaFX nodes.
LibOVR API of the Oculus Rift SDK.
meshoptimizer A mesh optimization library that makes meshes smaller and faster to render
NanoSVG Simple SVG parser.
NanoVG 2D vector graphics rendering library using OpenGL.
Nuklear Simple GUI library.
par_shapes Generator for parametric and other simple shapes.
par_streamlines Triangulate wide lines and curves.
OpenVR An API runtime that allows access to VR hardware from multiple vendors without requiring applications have specific knowledge of the type of hardware they are targeting.
Shaderc A collection of libraries for shader compilation
SPIRV-Cross A library for performing reflection on SPIR-V and disassembling SPIR-V back to high level languages.
OpenEXR A small, single-header library to load and save OpenEXR (.exr) images.
Tootle (AMD) A 3D triangle mesh optimization library that improves on existing mesh preprocessing techniques.
Vulkan Memory Allocator An easy to integrate Vulkan memory allocation library.
Yoga An open-source, cross-platform layout library that implements CSS Flexbox.
STB STB Lightweight single-file libraries for loading images, sounds and fonts.
Bullet Physics Other Real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine-learning, etc.
CUDA A parallel computing platform and programming model developed by NVIDIA for general computing on GPUs.
dyncall Library for dynamically calling C functions in a portable way. Set to be removed.
jemalloc Low-level memory management.
libffi A portable, high level programming interface to various calling conventions. Replaces dyncall.
libdivide A library that replaces expensive integer divides with comparatively cheap multiplication and bitshifts.
LLVM A collection of modular and reusable compiler and toolchain technologies.
LMDB Fast database library using memory-mapped files.
LZ4 A lossless data compression algorithm that is focused on speed.
Meow Hash Fast non-cryptographic hash.
ODBC A C-language interface that makes it possible for applications to access data from a variety of database management systems.
Remotery Realtime CPU/GPU profiler.
rpmalloc Cross-platform thread caching memory allocator.
xxHash Fast hash algorithm.
Zstandard A fast lossless compression algorithm.

Известные применения

[ редактировать ]
  1. ^ Перейти обратно: а б Мацон, Брайан (4 февраля 2007 г.). «Выпущена версия LWJGL 1.0» . Форум LWJGL . Проверено 23 июля 2016 г.
  2. ^ Перейти обратно: а б с д "LWJGL/lwjgl3" . github.com . Проверено 13 августа 2016 г.
  3. ^ Перейти обратно: а б «lwjgl3/doc — Генератор» . github.com . 11 августа 2015 года . Проверено 30 августа 2015 г.
  4. ^ Перейти обратно: а б с д и «Официальный сайт» . Проверено 14 августа 2015 г.
  5. ^ Цакпинис, Иоаннис (13 ноября 2014 г.). «Добро пожаловать в LWJGL 3» . blog.lwjgl.org .
  6. ^ Перейти обратно: а б «Дорожная карта LWJGL 3» . github.com . Проверено 2 июня 2015 г.
  7. ^ Перейти обратно: а б с Цакпинис, Джон (27 апреля 2015 г.). «Выпущен LWJGL 3.0.0a» . blog.lwjgl.org
  8. ^ «LWJGL 3.0.0 выпущен!» . blog.lwjgl.org . 4 июня 2016 г. Проверено 4 июня 2016 г.
  9. ^ «Часто задаваемые вопросы по привязкам» . github.com . 27 декабря 2014 года . Проверено 27 июля 2015 г.
  10. ^ «LWJGL 3.1.0 выпущен!» . blog.lwjgl.org . 30 октября 2016 г. Проверено 11 ноября 2016 г.
  11. ^ «Майнкрафт разблокирован» . Проверено 16 ноября 2023 г.
  12. ^ «Скачать – LWJGL» . lwjgl.org . Проверено 11 ноября 2016 г.
  13. ^ «Атрибуции Minecraft | Minecraft» . Майнкрафт.нет . Проверено 9 июля 2020 г.
  14. ^ «АПЗДТИСА №3: На этот раз с ЖИВЫМ МУЛЬТИПЛЕЕРОМ!» . Проект Зомбоид . 17 февраля 2014 года . Проверено 25 января 2022 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 0a1c6cbbce965605e7e82576176e6df5__1722280140
URL1:https://arc.ask3.ru/arc/aa/0a/f5/0a1c6cbbce965605e7e82576176e6df5.html
Заголовок, (Title) документа по адресу, URL1:
LWJGL - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)