Jump to content

LWJGL

Облегченная библиотека Java-игр (LWJGL)
Оригинальный автор(ы) Каспийский принц
Разработчик(и) Джон Цакпинис
Первоначальный выпуск 4 февраля 2007 г .; 17 лет назад ( 04.02.2007 ) [1]
Стабильная версия
3.3.4 / 17 июля 2024 г .; 19 дней назад ( 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]
Связывание Категория Описание Примечания
EGLKhronos APIsInterface between Khronos rendering APIs and the underlying native platform window system.
OpenCLAPI for cross-platform parallel computing.
OpenGL3D graphics specification implemented by most GPU vendors.Most extensions are supported, but less popular ones will be added on request.
OpenGL ESOpenGL for embedded systems like mobile phones, tablets, or consoles.
VulkanUpcoming cross-platform 3D graphics API.
GLFWDisplay and InputWindow management library needed for handling OpenGL and Vulkan contexts as well as user input.
JAWTAWT native interface.
nfdSmall cross-platform native file dialogs library.
tinyfdSmall native dialog library.
OpenALAudioThree-dimensional audio API.ALC and other extensions are supported. Specifically bundles the OpenAL Soft implementation.
OpusOpen, royalty-free audio codec.
AssimpGraphicsPortable open source library to import various 3D model formats.
bgfxCross-platform rendering library supporting multiple graphics backends.
DriftFXLibrary to render OpenGL content into JavaFX nodes.
LibOVRAPI of the Oculus Rift SDK.
meshoptimizerA mesh optimization library that makes meshes smaller and faster to render
NanoSVGSimple SVG parser.
NanoVG2D vector graphics rendering library using OpenGL.
NuklearSimple GUI library.
par_shapesGenerator for parametric and other simple shapes.
par_streamlinesTriangulate wide lines and curves.
OpenVRAn 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.
ShadercA collection of libraries for shader compilation
SPIRV-CrossA library for performing reflection on SPIR-V and disassembling SPIR-V back to high level languages.
OpenEXRA 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 AllocatorAn easy to integrate Vulkan memory allocation library.
YogaAn open-source, cross-platform layout library that implements CSS Flexbox.
STBSTBLightweight single-file libraries for loading images, sounds and fonts.
Bullet PhysicsOtherReal-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine-learning, etc.
CUDAA parallel computing platform and programming model developed by NVIDIA for general computing on GPUs.
dyncallLibrary for dynamically calling C functions in a portable way.Set to be removed.
jemallocLow-level memory management.
libffiA portable, high level programming interface to various calling conventions.Replaces dyncall.
libdivideA library that replaces expensive integer divides with comparatively cheap multiplication and bitshifts.
LLVMA collection of modular and reusable compiler and toolchain technologies.
LMDBFast database library using memory-mapped files.
LZ4A lossless data compression algorithm that is focused on speed.
Meow HashFast non-cryptographic hash.
ODBCA C-language interface that makes it possible for applications to access data from a variety of database management systems.
RemoteryRealtime CPU/GPU profiler.
rpmallocCross-platform thread caching memory allocator.
xxHashFast hash algorithm.
ZstandardA fast lossless compression algorithm.

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

[ редактировать ]
  1. ^ Jump up to: а б Мацон, Брайан (4 февраля 2007 г.). «Выпущена версия LWJGL 1.0» . Форум LWJGL . Проверено 23 июля 2016 г.
  2. ^ Jump up to: а б с д "LWJGL/lwjgl3" . github.com . Проверено 13 августа 2016 г.
  3. ^ Jump up to: а б «lwjgl3/doc — Генератор» . github.com . 11 августа 2015 года . Проверено 30 августа 2015 г.
  4. ^ Jump up to: а б с д и «Официальный сайт» . Проверено 14 августа 2015 г.
  5. ^ Цакпинис, Иоаннис (13 ноября 2014 г.). «Добро пожаловать в LWJGL 3» . blog.lwjgl.org .
  6. ^ Jump up to: а б «Дорожная карта LWJGL 3» . github.com . Проверено 2 июня 2015 г.
  7. ^ Jump up to: а б с Цакпинис, Джон (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
Номер скриншота №: 0bbe563a19f10d475e41981e23b99da3__1722280140
URL1:https://arc.ask3.ru/arc/aa/0b/a3/0bbe563a19f10d475e41981e23b99da3.html
Заголовок, (Title) документа по адресу, URL1:
LWJGL - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)