This repository hosts LWJGL 3, the complete rewrite and next major version of LWJGL. Everything you need to know about the project can be found in the Wiki. Other useful links:
For a quick overview of the project structure, installation instructions and configuration options, see doc/README.
For migrating LWJGL 2 code to LWJGL 3, see the Migration Guide.
LWJGL 3 can be used with Maven/Gradle/Ivy, with the following dependencies:
org.lwjgl:lwjgl:${version}
org.lwjgl:lwjgl-platform:${version}:natives-windows
org.lwjgl:lwjgl-platform:${version}:natives-linux
org.lwjgl:lwjgl-platform:${version}:natives-osx
where ${version}
is a version (e.g. 3.0.0
) released on Maven Central. Nightly builds are also available from the Sonatype Nexus repository, with a snapshot build version (e.g. 3.0.1-SNAPSHOT
).
LWJGL 3 requires Java 8 or later to build and run and currently supports the following platforms/architectures:
- Linux x64
- MacOS X x64
- Windows x86
- Windows x64
Example code:
- Test suite (simple samples covering basic usage of LWJGL bindings)
- Demo suite (includes advanced OpenGL and Vulkan demos)
- Wiki tutorials
LWJGL 3 includes the following bindings:
Library | Description |
---|---|
EGL | An interface between Khronos rendering APIs such as OpenGL ES or OpenVG and the underlying native platform window system. |
OpenCL | An open, royalty-free standard for cross-platform, parallel programming of diverse processors found in personal computers, servers, mobile devices and embedded platforms. |
OpenGL | The most widely adopted 2D and 3D graphics API in the industry, bringing thousands of applications to a wide variety of computer platforms. |
OpenGL ES | A royalty-free, cross-platform API for full-function 2D and 3D graphics on embedded systems - including consoles, phones, appliances and vehicles. |
Vulkan | A new generation graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from PCs and consoles to mobile phones and embedded platforms. |
Library | Description |
---|---|
GLFW | Create multiple windows, handle user input (keyboard, mouse, gaming peripherals) and manage contexts. Also features multi-monitor support, clipboard access, file drag-n-drop, and much more. |
JAWT | The AWT native interface. |
LibOVR | The API of the Oculus SDK. |
nfd | A tiny, neat C library that portably invokes native file open and save dialogs. |
Library | Description |
---|---|
OpenAL | A cross-platform 3D audio API appropriate for use with gaming applications and many other types of audio applications. |
OpenAL Soft | An LGPL-licensed, cross-platform, software implementation of the OpenAL 3D audio API. |
Library | Description |
---|---|
NanoVG | A small antialiased vector graphics rendering library for OpenGL. |
par_shapes | Generate parametric surfaces and other simple shapes. |
stb - single-file public domain libraries for C/C++
Library | Description |
---|---|
stb_easy_font | Quick-and-dirty easy-to-deploy bitmap font for printing frame rate, etc. |
stb_image | Image loading/decoding from file/memory: JPG, PNG, TGA, BMP, PSD, GIF, HDR, PIC |
stb_image_resize | Resize images larger/smaller with good quality. |
stb_image_write | Image writing to disk: PNG, TGA, BMP |
stb_perlin | Revised Perlin noise (3D input, 1D output). |
stb_rect_pack | Simple 2D rectangle packer with decent quality. |
stb_truetype | Parse, decode, and rasterize characters from truetype fonts. |
stb_vorbis | Decode ogg vorbis files from file/memory to float/16-bit signed output. |
Library | Description |
---|---|
dyncall | Encapsulates architecture-, OS- and compiler-specific function call semantics in a virtual bind argument parameters from left to right and then call interface allowing programmers to call C functions in a completely dynamic manner. |
jemalloc | A general purpose malloc implementation that emphasizes fragmentation avoidance and scalable concurrency support. |
xxHash | An Extremely fast Hash algorithm, running at RAM speed limits. |
Use of a binding is subject to the terms of the corresponding license.