Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

LWJGL

From Wikipedia, the free encyclopedia
Open-source Java software game library
This article has multiple issues. Please helpimprove it or discuss these issues on thetalk page.(Learn how and when to remove these messages)
The topic of this articlemay not meet Wikipedia'snotability guidelines for products and services. Please help to demonstrate the notability of the topic by citingreliable secondary sources that areindependent of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the article is likely to bemerged,redirected, ordeleted.
Find sources: "LWJGL" – news ·newspapers ·books ·scholar ·JSTOR
(March 2016) (Learn how and when to remove this message)
icon
This articlerelies excessively onreferences toprimary sources. Please improve this article by addingsecondary or tertiary sources.
Find sources: "LWJGL" – news ·newspapers ·books ·scholar ·JSTOR
(August 2015) (Learn how and when to remove this message)
(Learn how and when to remove this message)

Lightweight Java Game Library (LWJGL)
Original authorCaspian Prince
DeveloperIoannis Tsakpinis
Initial release4 February 2007; 19 years ago (2007-02-04)[1]
Stable release
3.3.6 / 4 January 2025; 13 months ago (2025-01-04)
Written inJava,C,Kotlin[2][3]
Operating systemLinux,macOS,Windows,FreeBSD
PlatformJava platform
TypeFree computer library
LicenseBSD,[4] some bindings under different licenses[2]
Websitelwjgl.org
Repositorygithub.com/lwjgl

TheLightweight Java Game Library (LWJGL) is anopen-sourcesoftware library that providesbindings to a variety ofC libraries forvideo game developers toJava. It exposescross-platform libraries commonly used in developing video games and multimedia titles, such asVulkan,OpenGL,GLFW,OpenAL andOpenCL.

The primary goal of the project is to provide a way for Java developers to get access to resources that are otherwise unavailable or poorly implemented on the existing Java platform. The main philosophy is to expose underlying technology as a thin wrapper, thus creating anAPI close to the original. It is also the basis of many high-level Java game engines and libraries, such aslibGDX or thejMonkeyEngine.

History

[edit]

Development of the library began in 2002 with the release ofJ2SE 1.4, making use of the newly-addednon-blocking I/O operations andoff-heap memory access. These additions to theJDK allowed for better access to native memory and libraries not a part of the JDK. The first official release of the library was on 4 February 2007.[1]

On 13 November 2014, version 3 was announced, which was released in the alpha version on 27 April 2015 and is a complete rewrite of LWJGL.[5][6][7] Many new bindings, includingGLFW,EGL andObjective-C, were added.[4][6] Support forOculus Rift development was also added with LibOVR bindings.[4][7] The new version was released on 4 June 2016, after more than 3 and a half years in development.[8]

Bindings

[edit]

The library accesses nativeC code through theJava Native Interface (JNI). Bindings to each of the native libraries exist as different modules so developers can make custom builds with only the things they need in a certain program.[4][7][9]

While utility classes are written in pureJava, most of the binding classes are automatically generated by a custom generator implemented inKotlin.[2][3]

Since version 3.1, LWJGL is fully split into 51 modules that can be downloaded and used separately. To make this process easier, the project provides an online build configurator, which allows users to download custom combinations of modules and automatically generatesMaven andGradle configuration files to ease their use with existing projects.[10][11]

Provided bindings[2][4]
BindingCategoryDescriptionNotes
EGLKhronos APIsInterface between Khronos rendering APIs and the underlying native platform window system.
OpenCLAPI for cross-platformparallel computing.
OpenGL3D graphics specification implemented by mostGPU vendors.Most extensions are supported, but less popular ones will be added on request.
OpenGL ESOpenGL forembedded 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-freeaudio codec.
AssimpGraphicsPortable open source library to import various3D model formats.
bgfxCross-platform rendering library supporting multiple graphics backends.
DriftFXLibrary to render OpenGL content into JavaFX nodes.
LibOVRAPI of theOculus Rift SDK.
meshoptimizerA mesh optimization library that makes meshes smaller and faster to render
NanoSVGSimpleSVG parser.
NanoVG2D vector graphics rendering library using OpenGL.
NuklearSimpleGUI library.
par_shapesGenerator forparametric 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 forshader compilation
SPIRV-CrossA library for performing reflection onSPIR-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 implementsCSSFlexbox.
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 byNVIDIA 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 usingmemory-mapped files.
LZ4A losslessdata compression algorithm that is focused on speed.
Meow HashFastnon-cryptographic hash.
ODBCA C-language interface that makes it possible for applications to access data from a variety of database management systems.
RemoteryRealtime CPU/GPUprofiler.
rpmallocCross-platform thread caching memory allocator.
xxHashFast non-cryptographic hash.
ZstandardA fast lossless compression algorithm.

Notable uses

[edit]

References

[edit]
  1. ^abMatzon, Brian (4 February 2007)."LWJGL 1.0 Released".LWJGL Forum. Retrieved23 July 2016.
  2. ^abcd"LWJGL/lwjgl3".github.com. Retrieved13 August 2016.
  3. ^ab"lwjgl3/doc – Generator".github.com. 11 August 2015. Retrieved30 August 2015.
  4. ^abcde"Official website". Retrieved14 August 2015.
  5. ^Tsakpinis, Ioannis (13 November 2014)."Welcome to LWJGL 3".blog.lwjgl.org.
  6. ^ab"LWJGL 3 Roadmap".github.com. Retrieved2 June 2015.
  7. ^abcTsakpinis, Ioannis (27 April 2015)."LWJGL 3.0.0a released".blog.lwjgl.org.
  8. ^"LWJGL 3.0.0 Released!".blog.lwjgl.org. 4 June 2016. Retrieved4 June 2016.
  9. ^"Bindings FAQ".github.com. 27 December 2014. Retrieved27 July 2015.
  10. ^"LWJGL 3.1.0 Released!".blog.lwjgl.org. 30 October 2016. Retrieved11 November 2016.
  11. ^"Download – LWJGL".lwjgl.org. Retrieved11 November 2016.
  12. ^"Minecraft Attributions | Minecraft".Minecraft.net. Retrieved9 July 2020.
  13. ^"APZDTISA #3: This time with LIVE MULTIPLAYER!".Project Zomboid. 17 February 2014. Retrieved25 January 2022.

External links

[edit]
Java desktop
APIs
Deprecated APIs
Open-source
Proprietary
1980s
1990s
2000s
2010s
2020s
Free and
open-source
1970s
1990s
2000s
2010s
2020s
Retrieved from "https://en.wikipedia.org/w/index.php?title=LWJGL&oldid=1331405617"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp