LWJGL, the Light Weight Java Game Library, just released version 3.1.2. LWJGL is series of low level language bindings to critical game development related APIs such as OpenGL and OpenAL. LWJGL is the underlying technology Java libraries such as LibGDX and jMonkeyEngine depend on for desktop targets. The 3.1.2 release brings several new fixes and features, including new VR oriented library bindings.
Details from the release log:
Bindings
- Added OpenVR bindings.
- Added Tiny OpenEXR bindings.
- Added Yoga bindings.
- bgfx: Updated to API version 41 (up from 34)
- glfw: Updated to pre-release 3.3.0 version (up from 3.2.1). Includes many fixes and new features:
- Last error code query (
glfwGetError)- Requesting attention from the user (
glfwRequestWindowAttention)- Platform dependent scancodes for keys (
glfwGetKeyScancode)- Window maximization events (
glfwSetWindowMaximizeCallback)- Window attribute modification (
glfwSetWindowAttrib)- Joystick hats (
glfwGetJoystickHats)- Library initialization hints (
glfwInitHint)- Headless OSMesa backend
- Cursor centering control (
GLFW_CENTER_CURSOR)- macOS: Cocoa hints (
GLFW_COCOA_RETINA_FRAMEBUFFER,GLFW_COCOA_FRAME_AUTOSAVE,GLFW_COCOA_GRAPHICS_SWITCHING,GLFW_COCOA_CHDIR_RESOURCES,GLFW_COCOA_MENUBAR)- macOS: Vulkan support via MoltenVK
- X11: Moved to XI2
XI_RawMotionfor disabled cursor mode motion input- EGL: Added support for
EGL_KHR_get_all_proc_addressesandEGL_KHR_context_flush_control- jemalloc: Updated to 4.5.0 (up from 4.4.0)
- LibOVR: Update to 1.14.0 (up from 1.10.0)
- lmdb: Updated to 0.9.20 (up from 0.9.18)
- NanoVG: Added support for fallback fonts.
- nuklear: Updated to 1.37.0 (up from 1.29.1, with the new versioning)
- OpenAL: Added
AL_SOFT_source_resamplerextension.- stb
- Updated
stb_dxtto 1.0.6 (up from 1.0.4)- Updated
stb_easy_fontto 1.0 (up from 0.7)- Updated
stb_imageto 2.15 (up from 2.13)- Updated
stb_image_resizeto 0.94 (up from 0.91)- Updated
stb_image_writeto 1.05 (up from 1.02)- Updated
stb_perlinto 0.3 (up from 0.2)- Updated
stb_rect_packto 0.11 (up from 0.10)- Updated
stb_truetypeto 1.15 (up from 1.12)- Updated
stb_vorbisto 1.10 (up from 1.09)- tinyfiledialogs: Updated to 2.8.3 (up from 2.7.2)
- Vulkan: Updated to 1.0.49 (up from 1.0.38)
Improvements
MemoryStack: Increased default stack size to 64kb (up from 32kb)- Shared library loading can now utilize a
ClassLoaderspecified by the caller. (#277)- Significantly reduced
DEBUG_MEMORY_ALLOCATORandDEBUG_STACKoverhead in Java 9 using the newStackWalkerAPI.- Migrated windows builds to appveyor and updated to Visual Studio 2017 (up from 2015)
- EGL: The core API now includes javadoc links to the Khronos references pages
- OpenGL ES: The core API now includes javadoc links to the Khronos references pages
Fixes
- Assimp: Struct member nullability fixes
- Linux: Removed dependencies to newer GLIBC versions.
- LibOVR: Fixed layout of the
ovrInputStatestruct.- OpenAL: Removed buffer auto-sizing from
alcCaptureSamples. The number of samples must now be specified explicitly, similar toalcRenderSamplesSOFT.- Vulkan: Function addresses are now retrieved only once, using the optimal method for each function type.
- This avoids warnings on pedantic validation layers.
- Fixed callback invocation bugs on 32-bit architectures.
- Fixed various javadoc formatting issues (#308)
Breaking Changes
- Mapped more integer parameters and return values to Java
boolean, that were missed while working on #181.
- Xlib’s
Bool- OpenCL’s
cl_bool- DynCall’s
DCbool- Moved JNI global reference functions from
MemoryUtilto the generatedorg.lwjgl.system.jni.JNINativeInterface.- The Vulkan capabilities have been split into two classes:
VKCapabilitiesInstanceandVKCapabilitiesDevice.
- Flags for core Vulkan versions exist in both classes.
- Flags for instance extensions exist only in
VKCapabilitiesInstance.- Flags for device extensions exist only in
VKCapabilitiesDevice.- Functions that dispatch on
VkInstanceorVkPhysicalDeviceexist only inVKCapabilitiesInstance.- Functions that dispatch on
VkDeviceand device-derived handles exist only inVKCapabilitiesDevice.- Bootstrapping functions can be retrieved with
VK.getFunctionProvider().
