LWJGL 3.0.0a released

The LWJGL team is proud to announce the first official release of LWJGL 3!

Many thanks to all the enthusiastic LWJGL users that have been trying the nightly builds since last November, it helped us immensely with improving the quality of the library. Keep the feedback coming!

The 3.0.0a release includes the following changes:

  • Updated GLFW to 3.1.1
  • Updated OpenAL Soft with the latest changes
  • Added Objective-C Runtime bindings
    Used together with the LibFFI bindings, the Objective-C Runtime enables you to interface JVM applications with Cocoa APIs on Mac OS X.
  • Added LibOVR bindings
    Got a Rift? Download the Oculus VR SDK, build LWJGL on your favorite platform and you're ready to design wonderful virtual reality experiences!
  • Restored type postfixes in Java method names, so that they always match with the corresponding native function. This change breaks compatibility with LWJGL 2 in several places, but it's trivial to fix existing code. See this thread for details.
  • Cleaned-up the build scripts and made them more robust. Also, the included IntelliJ project now works almost out of the box, with minimal configuration. If you're looking to contribute to LWJGL, it should now be painless.
  • Added support for modules. All bindings that LWJGL supports can now be conditionally included or excluded during the build process. If you have a need for lighter binaries, it's now very easy to deploy a customized build.
    This feature also allows us to support as many bindings as we like, assuming at least some users find them useful, without worrying about the distribution size of the official release.
  • Native binaries for all OSes and architectures now live in the same directory. The previous structure, with different subdirectories for each OS/arch, was causing trouble with popular application launchers and tools that create/extract JARs.
  • Added new demos and tests. If you can build LWJGL locally, make sure to run the fantastic ray tracing demos contributed by Kai Burjack!
  • Many bug fixes and API improvements of course!

So, what's coming next?

  • Support for Gradle and deployment to Maven Central.
    Ant is showing its age and we need something modern and more easily maintainable. Depending on how this goes, we'll probably drop Ant support at some point.
  • Mantle bindings
    Everyone is excited about Vulkan, but it will be a while before the specification is released and stable drivers are available. AMD's Mantle is the API that Vulkan was based on and you can use it right now to start designing a next-generation rendering application. Obviously it will be an optional module, since it's Windows-only and requires GCN hardware.

After that we'll get:

  • Support for all (still relevant) OpenGL extensions. If you have time to contribute, this is what we need more help with.
  • EGL and OpenGL|ES bindings

Around that time we should do a beta release. Moving on:

  • Vulkan bindings, when the spec is released. You can't wait, we know!
  • D3D 12 bindings. Hey, why not, we have modules now. :)
  • Video decoding bindings.
    We promised that before, but it has been postponed due to technical difficulties. We're still discussing what the best approach should be, if you have any input please post a topic on the forum.
  • Font rendering functionality.
    This is another very commonly requested feature and we really want to avoid any AWT dependencies. There are several options here as well, so feel free to offer suggestions.

Enjoy the first LWJGL 3 release!