LWJGL v3.1.1 Release Notes

Release Date: 2016-12-27 // over 7 years ago
  • ๐Ÿ”„ Changes since 3.1.0:

    Bindings

    • โž• Added Assimp bindings.
    • โšก๏ธ bgfx: Updated to API version 34 (up from 28)
    • โšก๏ธ jemalloc: Updated to version 4.4.0 (up from 4.2.1)
    • โšก๏ธ LibOVR: Updated to version 1.10.0 (up from 1.9.0)
    • โšก๏ธ nuklear: Updated to version 1.191 (up from 1.17)
    • โšก๏ธ Vulkan: Updated to version 1.0.38 (up from 1.0.32)
    • โšก๏ธ stb: Updated stb_image to 2.13 (up from 2.12)
    • โšก๏ธ tinyfiledialogs: Updated to version 2.7.2 (up from 2.6.1)

    ๐Ÿ‘Œ Improvements

    • ๐Ÿ”จ Refactored function pointer lookups in OpenAL, OpenGL and OpenGL ES.
      • Significant reduction in bytecode size (and corresponding JIT code).
      • No thread-local lookup in GL and GLES, even with incompatible contexts.
      • Removed obsolete thread-local and capabilities state Configuration options.
    • ๐Ÿง Linux: All natives are now built with GCC 6.2 (up from 4.8)
    • โš  Loader: If jemalloc initialization fails and org.lwjgl.system.allocator has not been set, a simple warning is now shown instead of an exception.
    • Structs: Added bound checks to element accessors of array members.
    • Generator: Validation is now required for all data pointer parameters. If validation is not possible, such parameters must be marked as potentially unsafe.
    • The SHA-1 hash of shared libraries is now included in the corresponding natives JAR files.
    • ๐Ÿ— The upstream git revision used to build shared libraries is now included in the corresponding natives JAR files.

    ๐Ÿ›  Fixes

    • ๐Ÿ›  Fixed loader diagnostics when System.loadLibrary fails.
    • ๐Ÿ›  Fixed setters of struct members with optional AutoSize. (#255)
    • ๐Ÿ›  Fixed MemoryUtil.memRealloc to return null when the allocation fails.
    • Vulkan: Function pointer loading of disabled extensions is now skipped.
    • Generator: binding.DISABLE_CHECKS is now respected in structs.

    ๐Ÿ’ฅ Breaking Changes

    • ๐ŸŽ macOS: LWJGL now requires macOS 10.9/Mavericks or later (up from 10.7/Lion)
    • ๐Ÿš€ A small number of method signatures have changed because of auto-size transformations that were missing in previous releases.
    • NanoVG: Text functions with an end pointer to the end of the string are now auto-size transformed. Buffers passed to them should not include a null-terminating byte.
    • โž• Added LibC prefix to all class names in the libc bindings, to avoid conflicts with standard Java classes (Locale, String, etc.)
    • OpenGL and OpenGL ES now come with native libraries (lwjgl_opengl and lwjgl_opengles respectively).
    • โœ‚ Removed MemoryUtil.memSetupBuffer.