diff --git a/build.gradle.kts b/build.gradle.kts
index ab40430cd8..c79c893202 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -88,11 +88,11 @@ enum class Artifacts(
"A cross-platform, graphics API agnostic rendering library. It provides a high performance, low level abstraction for common platform graphics APIs like OpenGL, Direct3D and Apple Metal.",
*Platforms.ALL
),
- BULLET(
+ /*BULLET(
"lwjgl-bullet", "LWJGL - Bullet bindings",
"Real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.",
*Platforms.ALL
- ),
+ ),*/
CUDA(
"lwjgl-cuda", "LWJGL - CUDA bindings",
"A parallel computing platform and programming model developed by NVIDIA for general computing on GPUs."
diff --git a/config/build-bindings.xml b/config/build-bindings.xml
index 806793dff8..9204a2c264 100644
--- a/config/build-bindings.xml
+++ b/config/build-bindings.xml
@@ -24,7 +24,7 @@ This script is included in /config/build-definitions.xml.
-
+
diff --git a/doc/notes/3.2.3.md b/doc/notes/3.2.3.md
index a29ddbc623..21891df1ed 100644
--- a/doc/notes/3.2.3.md
+++ b/doc/notes/3.2.3.md
@@ -1,6 +1,6 @@
### 3.2.3
-_Not Released Yet_
+_Released 2019 Sep 01_
This build includes the following changes:
@@ -11,16 +11,27 @@ This build includes the following changes:
- Assimp: Updated to 5.0.0rc2 (up from 5.0.0rc1).
- bgfx: Updated to API version 100 (up from 99)
- glfw: Updated to 3.4.0 pre-release (up from 3.3.0)
+- EGL: Added `EGL_NV_stream_dma`.
- jemalloc: Updated to 5.2.1 (up from 5.2.0)
- LibOVR: Updated to 1.39.0 (up from 1.35.0)
- libdivide: Updated to 2.0 (up from 1.0)
- lz4: Updated to 1.9.2 (up from 1.9.1)
* Also, the LWJGL memory allocator is now used for internal allocations.
- nuklear: Updated to 4.01.0 (up from 4.00.2)
+- OpenGL(ES): Added latest extensions.
+ * `GL_EXT_multiview_tessellation_geometry_shader`
+ * `GL_EXT_multiview_texture_multisample`
+ * `GL_EXT_multiview_timer_query`
+ * `GL_EXT_texture_shadow_lod`
+ * `GL_EXT_texture_sRGB_R8`
+ * `GL_KHR_shader_subgroup`
+ * `GL_NV_shader_subgroup_partitioned`
+ * `GL_NVX_gpu_multicast2`
+ * `GL_NVX_progress_fence`
+- OpenVR: Updated to 1.6.10 (up from 1.3.22)
- par: Updated `par_shapes` to latest version.
* Added `par_shapes_create_cone`.
- par: Added [par_streamlines](https://prideout.net/blog/par_streamlines) bindings.
-- OpenVR: Updated to 1.6.10 (up from 1.3.22)
- rpmalloc: Updated to 1.4.0 (up from 1.3.2)
- stb
* Updated `stb_image` to 2.23 (up from 2.22)
@@ -40,7 +51,9 @@ This build includes the following changes:
* The default contains x64 shared libraries only. Maven classifier: `windows`
* `lwjgl-natives-windows-x86.jar` contains x86 shared libraries only. Maven classifier: `windows-x86`
* The `32` suffix has been dropped from x86 shared library names.
-- Maven: LWJGL artifacts now include a Bill of Materials (BOM). (#481)
+- Windows: Shared libraries are now built with Visual Studio 2019 (up from 2017)
+- Maven: LWJGL artifacts now include a Bill of Materials (`lwjgl-bom`). (#481)
+ * The [build customizer](https://www.lwjgl.org/customize) may be used to migrate Maven/Gradle scripts.
- Refactored the layout of native JAR files.
* Shared libraries have been moved from the root to a `///` subfolder.
* ``: one of `linux`, `macos`, `windows`.
@@ -63,6 +76,7 @@ This build includes the following changes:
- Core: Fixed `ByteBuffer` attachments in `memSlice` & `memDuplicate`.
- Generator: Fixed invalid generation of functions with struct parameters passed by value. (#496)
* Affected bindings: OpenVR and LLVM/Clang.
+- Generator: Improved javadoc for array and nested struct members.
- EGL/GLES: Fixed bootstrapping code.
* Regression caused by `org.lwjgl.system.JNI` refactoring in `3.2.2`.
- LLVM: Fixed default library names.
diff --git a/doc/notes/README.md b/doc/notes/README.md
index 9afea40e94..db3e8c1021 100644
--- a/doc/notes/README.md
+++ b/doc/notes/README.md
@@ -4,7 +4,8 @@
### Version History
-* 2019-05-05 [3.2.2](3.2.2.md) (latest)
+* 2019-09-01 [3.2.3](3.2.3.md) (latest)
+* 2019-05-05 [3.2.2](3.2.2.md)
* 2018-12-08 [3.2.1](3.2.1.md)
* 2018-07-30 [3.2.0](3.2.0.md)
* 2018-02-04 [3.1.6](3.1.6.md)
diff --git a/doc/notes/full.md b/doc/notes/full.md
index 1cdeeb4dbe..4d42eabfac 100644
--- a/doc/notes/full.md
+++ b/doc/notes/full.md
@@ -1,3 +1,103 @@
+### 3.2.3
+
+_Released 2019 Sep 01_
+
+This build includes the following changes:
+
+#### Bindings
+
+- Added [Shaderc](https://github.com/google/shaderc) bindings. (#77)
+- Added bindings to platform APIs that can be used to programmatically generate input events.
+- Assimp: Updated to 5.0.0rc2 (up from 5.0.0rc1).
+- bgfx: Updated to API version 100 (up from 99)
+- glfw: Updated to 3.4.0 pre-release (up from 3.3.0)
+- EGL: Added `EGL_NV_stream_dma`.
+- jemalloc: Updated to 5.2.1 (up from 5.2.0)
+- LibOVR: Updated to 1.39.0 (up from 1.35.0)
+- libdivide: Updated to 2.0 (up from 1.0)
+- lz4: Updated to 1.9.2 (up from 1.9.1)
+ * Also, the LWJGL memory allocator is now used for internal allocations.
+- nuklear: Updated to 4.01.0 (up from 4.00.2)
+- OpenGL(ES): Added latest extensions.
+ * `GL_EXT_multiview_tessellation_geometry_shader`
+ * `GL_EXT_multiview_texture_multisample`
+ * `GL_EXT_multiview_timer_query`
+ * `GL_EXT_texture_shadow_lod`
+ * `GL_EXT_texture_sRGB_R8`
+ * `GL_KHR_shader_subgroup`
+ * `GL_NV_shader_subgroup_partitioned`
+ * `GL_NVX_gpu_multicast2`
+ * `GL_NVX_progress_fence`
+- OpenVR: Updated to 1.6.10 (up from 1.3.22)
+- par: Updated `par_shapes` to latest version.
+ * Added `par_shapes_create_cone`.
+- par: Added [par_streamlines](https://prideout.net/blog/par_streamlines) bindings.
+- rpmalloc: Updated to 1.4.0 (up from 1.3.2)
+- stb
+ * Updated `stb_image` to 2.23 (up from 2.22)
+ * Updated `stb_truetype` to 1.22 (up from 1.21)
+ * Updated `stb_vorbis` to 1.17 (up from 1.16)
+- Vulkan: Updated to 1.1.121 (up from 1.0.107)
+ * Includes MoltenVK 1.0.36
+- xxhash: Updated to 0.7.1 (up from 0.7.0)
+- Zstd: Updated to 1.4.3 (up from 1.4.0)
+
+#### Improvements
+
+- Linux: Added support for ARM builds.
+ * 32-bit: ARMv7/armhf architecture. Maven classifier: `linux-arm32`
+ * 64-bit: ARMv8/AArch64 architecture. Maven classifier: `linux-arm64`
+- Windows: There is now a separate native JAR file per architecture.
+ * The default contains x64 shared libraries only. Maven classifier: `windows`
+ * `lwjgl-natives-windows-x86.jar` contains x86 shared libraries only. Maven classifier: `windows-x86`
+ * The `32` suffix has been dropped from x86 shared library names.
+- Windows: Shared libraries are now built with Visual Studio 2019 (up from 2017)
+- Maven: LWJGL artifacts now include a Bill of Materials (`lwjgl-bom`). (#481)
+ * The [build customizer](https://www.lwjgl.org/customize) may be used to migrate Maven/Gradle scripts.
+- Refactored the layout of native JAR files.
+ * Shared libraries have been moved from the root to a `///` subfolder.
+ * ``: one of `linux`, `macos`, `windows`.
+ * ``: one of `x64`, `x86`, `arm64`, `arm32`.
+ * ``: the corresponding Java module name as a package hierarchy.
+ * Example: `glfw.so` in `lwjgl-glfw-natives-linux.jar` is under the `linux/x64/org/lwjgl/glfw` folder.
+ * The new layout allows multiple native JAR files to be combined for custom deployment.
+ * Custom (or the old) layout may be used with newly exposed `Configuration` options.
+- Core: Added `enum Platform.Architecture` and `Platform.getArchitecture()` API.
+- Core: Added relative & absolute `apply(Consumer)` methods to `StructBuffer`.
+- Core: Added `Consumer` setters to structs with nested arrays of structs.
+- Core: Added `memByteBuffer` overloads that return `ByteBuffer` views of other buffer types.
+- Core: Added `CLongBuffer`, a class similar to `PointerBuffer` but for C `long` values.
+
+#### Fixes
+
+- Core: Removed support for Critical JNI Natives. (#490)
+ * Will be restored in LWJGL 3.3 (disabled by default, enabled with a `Configuration` option).
+- Core: Fixed buffer attachment offset detection on JDK 12+. (#491)
+- Core: Fixed `ByteBuffer` attachments in `memSlice` & `memDuplicate`.
+- Generator: Fixed invalid generation of functions with struct parameters passed by value. (#496)
+ * Affected bindings: OpenVR and LLVM/Clang.
+- Generator: Improved javadoc for array and nested struct members.
+- EGL/GLES: Fixed bootstrapping code.
+ * Regression caused by `org.lwjgl.system.JNI` refactoring in `3.2.2`.
+- LLVM: Fixed default library names.
+- lmdb: Reverted to the official release. (#482)
+ * Windows: Performance issues are eliminated, but sparse database mappings & incremental file growth are not supported anymore.
+- OpenGL: Fixed signatures of `glGetnUniformiv` and `glGetnUniformuiv`.
+
+#### Breaking Changes
+
+```
+(B): binary incompatible change
+(S): source incompatible change
+```
+
+- Core: The `Library.loadSystem` & `Library.loadNative` methods now require a module name parameter. **(S)**
+- Core: Removed `Consumer` overloads from read-only structs with nested struct members. **(S)**
+- Core: `MemoryUtil.memFree(PointerBuffer)` changed to `memFree(CustomBuffer)`. **(B)**
+- LZ4: The `autoFlush` and `favorDecSpeed` members of `LZ4F_preferences_t` are now mapped to Java `boolean`. **(S)**
+- Vulkan: The `descriptorCount` member of `VkWriteDescriptorSet` must now be set explicitly. **(S)**
+ * The semantics of `descriptorCount` may change via extensions, which invalidates auto-sizing.
+
### 3.2.2
_Released 2019 May 05_
@@ -62,11 +162,6 @@ This build includes the following changes:
#### Breaking Changes
-```
-(B): binary incompatible change
-(S): source incompatible change
-```
-
- Core: Function address parameters in `org.lwjgl.system.JNI` & `org.lwjgl.system.jawt.JAWTFunctions` methods are now last, after normal parameters. **(S)**
* Enables tail-calls without argument shuffling, when Critical JNI Natives are used.
- glfw: removed `CharSequence` overload of `glfwUpdateGamepadMappings`. **(S)** (#462)
@@ -167,11 +262,6 @@ This build includes the following changes:
#### Breaking Changes
-```
-(B): binary incompatible change
-(S): source incompatible change
-```
-
- Core: `sun.misc.Unsafe` is now required, there is no JNI fallback.
- vma: The `VmaVulkanFunctions.set` helper method now returns `VmaVulkanFunctions`. **(B)**
diff --git a/doc/notes/latest.md b/doc/notes/latest.md
index 738c3d4611..21891df1ed 100644
--- a/doc/notes/latest.md
+++ b/doc/notes/latest.md
@@ -1,64 +1,88 @@
-### 3.2.2
+### 3.2.3
-_Released 2019 May 05_
+_Released 2019 Sep 01_
This build includes the following changes:
#### Bindings
-- bgfx: Updated to API version 99 (up from 90)
-- CUDA: Updated to 10.1 (up from 10.0)
-- glfw: Updated to 3.3.0 (up from 3.3.0 pre-release):
- * Added `GLFW_RAW_MOUSE_MOTION`.
- * Added `glfwGetMonitorWorkarea`.
- * Added `glfwRawMouseMotionSupported`.
-- jemalloc: Updated to 5.2.0 (up from pre-release 5.2.0)
-- LibOVR: Updated to 1.35.0 (up from 1.31.0)
-- LLVM/Clang: Updated to 8.0 (up from 7.0)
-- lmdb: Updated to 0.9.24 (up from 0.9.23)
-- lz4: Updated to 1.9.1 (up from 1.8.3)
-- NanoVG: Added support for using bgfx as the rendering back-end.
-- NanoVG: Added Blendish & OUI bindings.
-- NativeFileDialog: Updated to 1.1.4 (up from 1.1.3)
-- OpenVR: Updated to 1.3.22 (up from 1.1.3b)
-- Opus: Updated to 1.3.1 (up from 1.3.0)
+- Added [Shaderc](https://github.com/google/shaderc) bindings. (#77)
+- Added bindings to platform APIs that can be used to programmatically generate input events.
+- Assimp: Updated to 5.0.0rc2 (up from 5.0.0rc1).
+- bgfx: Updated to API version 100 (up from 99)
+- glfw: Updated to 3.4.0 pre-release (up from 3.3.0)
+- EGL: Added `EGL_NV_stream_dma`.
+- jemalloc: Updated to 5.2.1 (up from 5.2.0)
+- LibOVR: Updated to 1.39.0 (up from 1.35.0)
+- libdivide: Updated to 2.0 (up from 1.0)
+- lz4: Updated to 1.9.2 (up from 1.9.1)
+ * Also, the LWJGL memory allocator is now used for internal allocations.
+- nuklear: Updated to 4.01.0 (up from 4.00.2)
+- OpenGL(ES): Added latest extensions.
+ * `GL_EXT_multiview_tessellation_geometry_shader`
+ * `GL_EXT_multiview_texture_multisample`
+ * `GL_EXT_multiview_timer_query`
+ * `GL_EXT_texture_shadow_lod`
+ * `GL_EXT_texture_sRGB_R8`
+ * `GL_KHR_shader_subgroup`
+ * `GL_NV_shader_subgroup_partitioned`
+ * `GL_NVX_gpu_multicast2`
+ * `GL_NVX_progress_fence`
+- OpenVR: Updated to 1.6.10 (up from 1.3.22)
+- par: Updated `par_shapes` to latest version.
+ * Added `par_shapes_create_cone`.
+- par: Added [par_streamlines](https://prideout.net/blog/par_streamlines) bindings.
+- rpmalloc: Updated to 1.4.0 (up from 1.3.2)
- stb
- * Updated `stb_image` to 2.22 (up from 2.19)
- * Updated `stb_image_resize` to 0.96 (up from 0.95)
- * Updated `stb_image_write` to 1.13 (up from 1.09)
- * Updated `stb_perlin` to 0.4 (up from 0.3)
- * Updated `stb_rect_pack` to 1.00 (up from 0.11)
- * Updated `stb_truetype` to 1.21 (up from 1.19)
- * Updated `stb_vorbis` to 1.16 (up from 1.14)
-- tinyfiledialogs: Updated to 3.3.9 (up from 3.3.8)
-- vma: Updated to 2.2.0 (up from 2.1.0)
-- Vulkan: Updated to 1.1.107 (up from 1.0.95)
- * Includes MoltenVK 1.0.35 (up from 1.0.27)
-- xxhash: Updated to 0.7.0 (up from 0.6.5)
-- Yoga: Updated to 1.14.0 (up from 1.10.0)
-- Zstd: Updated to 1.4.0 (up from 1.3.7)
+ * Updated `stb_image` to 2.23 (up from 2.22)
+ * Updated `stb_truetype` to 1.22 (up from 1.21)
+ * Updated `stb_vorbis` to 1.17 (up from 1.16)
+- Vulkan: Updated to 1.1.121 (up from 1.0.107)
+ * Includes MoltenVK 1.0.36
+- xxhash: Updated to 0.7.1 (up from 0.7.0)
+- Zstd: Updated to 1.4.3 (up from 1.4.0)
#### Improvements
-- build(ant): The `release` target now works in offline mode (`LWJGL_BUILD_OFFLINE=true`).
- * The build can be incomplete. Missing natives will be ignored and javadoc generation can be disabled for faster builds.
-- build(gradle): Deployments of incomplete builds to the local Maven repository are now allowed.
-- Core: Implemented workaround for [JDK-8195129](https://bugs.openjdk.java.net/browse/JDK-8195129) in the `SharedLibraryLoader`.
-- perf: Critical JNI Natives are now generated for primitive-only functions.
-- LLVM: The bindings can now be used with LLVM/Clang version 5.0 or newer (down from 8.0).
+- Linux: Added support for ARM builds.
+ * 32-bit: ARMv7/armhf architecture. Maven classifier: `linux-arm32`
+ * 64-bit: ARMv8/AArch64 architecture. Maven classifier: `linux-arm64`
+- Windows: There is now a separate native JAR file per architecture.
+ * The default contains x64 shared libraries only. Maven classifier: `windows`
+ * `lwjgl-natives-windows-x86.jar` contains x86 shared libraries only. Maven classifier: `windows-x86`
+ * The `32` suffix has been dropped from x86 shared library names.
+- Windows: Shared libraries are now built with Visual Studio 2019 (up from 2017)
+- Maven: LWJGL artifacts now include a Bill of Materials (`lwjgl-bom`). (#481)
+ * The [build customizer](https://www.lwjgl.org/customize) may be used to migrate Maven/Gradle scripts.
+- Refactored the layout of native JAR files.
+ * Shared libraries have been moved from the root to a `///` subfolder.
+ * ``: one of `linux`, `macos`, `windows`.
+ * ``: one of `x64`, `x86`, `arm64`, `arm32`.
+ * ``: the corresponding Java module name as a package hierarchy.
+ * Example: `glfw.so` in `lwjgl-glfw-natives-linux.jar` is under the `linux/x64/org/lwjgl/glfw` folder.
+ * The new layout allows multiple native JAR files to be combined for custom deployment.
+ * Custom (or the old) layout may be used with newly exposed `Configuration` options.
+- Core: Added `enum Platform.Architecture` and `Platform.getArchitecture()` API.
+- Core: Added relative & absolute `apply(Consumer)` methods to `StructBuffer`.
+- Core: Added `Consumer` setters to structs with nested arrays of structs.
+- Core: Added `memByteBuffer` overloads that return `ByteBuffer` views of other buffer types.
+- Core: Added `CLongBuffer`, a class similar to `PointerBuffer` but for C `long` values.
#### Fixes
-- build(ant): Fixed building on Linux & macOS when the path to LWJGL's root directory is shallow. (#442)
-- Core: Fixed race condition in callback deallocation when the debug allocator is enabled. (#444)
-- Generator: The workaround for [JDK-8167409](https://bugs.openjdk.java.net/browse/JDK-8167409) is now applicable to functions with 5 parameters + 1 implicit parameter (function address or struct value result).
-- Generator: Support `void()` in callback functions without parameters.
-- Assimp: Added missing members to various struct types.
-- LLVM: `LLVMGetErrorMessage` now returns `ByteBuffer` instead of `String`, so that `LLVMDisposeErrorMessage` can be used.
-- nuklear: The `nk_text_edit`, `nk_text_undo_state` and `nk_text_undo_record` structs are now public.
-- OpenCL: Array overloads of `EnqueueRead/Write` functions cannot be used to perform non-blocking reads/writes anymore.
-- OpenGL: Added `GL_DRAW_INDIRECT_BUFFER` overloads to `NV_bindless_multi_draw_indirect` & `NV_bindless_multi_draw_indirect_count` extensions.
-- vma: Fixed `VmaMemoryUsage` enumeration values. (#458)
+- Core: Removed support for Critical JNI Natives. (#490)
+ * Will be restored in LWJGL 3.3 (disabled by default, enabled with a `Configuration` option).
+- Core: Fixed buffer attachment offset detection on JDK 12+. (#491)
+- Core: Fixed `ByteBuffer` attachments in `memSlice` & `memDuplicate`.
+- Generator: Fixed invalid generation of functions with struct parameters passed by value. (#496)
+ * Affected bindings: OpenVR and LLVM/Clang.
+- Generator: Improved javadoc for array and nested struct members.
+- EGL/GLES: Fixed bootstrapping code.
+ * Regression caused by `org.lwjgl.system.JNI` refactoring in `3.2.2`.
+- LLVM: Fixed default library names.
+- lmdb: Reverted to the official release. (#482)
+ * Windows: Performance issues are eliminated, but sparse database mappings & incremental file growth are not supported anymore.
+- OpenGL: Fixed signatures of `glGetnUniformiv` and `glGetnUniformuiv`.
#### Breaking Changes
@@ -67,14 +91,9 @@ This build includes the following changes:
(S): source incompatible change
```
-- Core: Function address parameters in `org.lwjgl.system.JNI` & `org.lwjgl.system.jawt.JAWTFunctions` methods are now last, after normal parameters. **(S)**
- * Enables tail-calls without argument shuffling, when Critical JNI Natives are used.
-- glfw: removed `CharSequence` overload of `glfwUpdateGamepadMappings`. **(S)** (#462)
-
-#### Known Issues
-
-- Core: LWJGL 3.2.2 is incompatible with Java 12 or higher. (#491)
- * This issue is fixed in LWJGL 3.2.3.
-- Core: Using LWJGL 3.2.2 with a garbage collector that does not support object pinning, may lead to excessive GC-related blocking. (#490)
- * Workaround: pass `-XX:-CriticalJNINatives` to the JVM.
- * This issue is fixed in LWJGL 3.2.3.
\ No newline at end of file
+- Core: The `Library.loadSystem` & `Library.loadNative` methods now require a module name parameter. **(S)**
+- Core: Removed `Consumer` overloads from read-only structs with nested struct members. **(S)**
+- Core: `MemoryUtil.memFree(PointerBuffer)` changed to `memFree(CustomBuffer)`. **(B)**
+- LZ4: The `autoFlush` and `favorDecSpeed` members of `LZ4F_preferences_t` are now mapped to Java `boolean`. **(S)**
+- Vulkan: The `descriptorCount` member of `VkWriteDescriptorSet` must now be set explicitly. **(S)**
+ * The semantics of `descriptorCount` may change via extensions, which invalidates auto-sizing.
\ No newline at end of file