自3.1.5
以来的变化:
绑定
- bgfx:已更新至API版本59(高于55)
glfw:已更新至预发布3.3.0版本(高于3.3.0预发布版本): 支持锁定键修饰符(
GLFW_LOCK_KEY_MODS
输入模式,GLFW_MOD_CAPS_LOCK
,GLFW_MOD_NUM_LOCK
) 支持字符串窗口提示(glfwWindowHintString
,GLFW_COCOA_FRAME_NAME
,GLFW_X11_CLASS_NAME
,GLFW_X11_INSTANCE_NAME
) 支持显示器&操纵杆用户ponters(glfwSetMonitorUserPointer
,glfwGetMonitorUserPointer
,glfwSetJoystickUserPointer
,glfwGetJoystickUserPointer
) 支持窗口内容比例回调(glfwSetWindowContentScaleCallback
) *支持游标悬停测试(GLFW_HOVERED
)lz4:更新至1.8.1(高于1.8.0)
- Nuklear:更新至3.00.2(高于2.00.4)
- OpenVR:已更新至1.0.12(高于1.0.10)
- rpmalloc:已更新至1.2.2(从1.2.0开始)
stb 更新
stb_dxt
为1.08b(从1.0.7上升) 将stb_image
更新为2.18(从2.16增加) 更新stb_image_write
为1.08(从1.07上升)STBIW_ZLIB_COMPRESS
可以在运行时用stbi_zlib_compress
覆盖。将
stb_truetype
更新为1.18(从1.17开始) 将stb_vorbis
更新为1.13b(从1.11开始)tinyfiledialogs:已更新至3.2.9(从3.2.4开始)
- Vulkan:已更新至1.0.68(高于1.0.65)
- xxhash:已更新至0.6.4(高于0.6.3)
- Zstd:已更新至1.3.4(从1.3.2开始) *瑜伽:更新至1.9.0(高于1.7.0)
改进
为核心和所有绑定添加了JSR-305空性注释。 (#344)
启用静态分析工具(FindBugs,IDEs)来检测可能导致NullPointerException
的访问。消除这些改善了LWJGL应用程序的质量。
*使用内置无效安全功能的基于JVM的语言实现更好的互操作性。例如,请参阅Kotlin的JSR-305支持。
*增加了配置
设置来禁用功能查找检查。
lmdb:数据库现在在32位和64位体系结构中是二进制兼容的。 (#364) *在32位版本中启用了
MDB_VL32
。par_shapes:修补以支持32位索引和极其密集的网格。
- stb_truetype:高级字形包装定制的内部结构的暴露成员。 (#358)
- Tootle:现在支持Direct3D光栅化器进行透支优化。
修复
JPMS:原生模块现在需要传递相应的Java模块,而不是相反。 (#334) *启用从非模块化路径/ JAR加载共享库。
JPMS:
module-info
文件已经在META-INF / version / 9 /
(#334) *所有LWJGL工件现在都是多版本的JAR文件,以避免使用与Java 9不兼容的旧工具的麻烦。JPMS:添加了适当的“需要静态”声明以满足可选绑定互操作依赖关系。 (#369) *修正所有绑定中的javadoc链接损坏。还更新了URL以避免重定向。
- bgfx:已恢复的默认API线程编码器函数,在
3.1.4
中被错误地删除。 - LibOVR:修复了
ovr_TraceMessage
签名。 - OpenAL:“AL_SOFT_source_resampler”扩展名的固定功能名称。
- Tootle:修复了
pnClusterRemapOut
参数验证。
打破变化
以前接受null
/NULL
并返回null
的几个方法现在需要非null输入。
适用于:struct&callback创建方法和memByteBuffer
/memUTF8
/stack.UTF8
/ etc。
添加了相应的方法,使用Safe
后缀来接受null
/NULL
,匹配旧的行为。
通过这种更改,常见情况(非空输入)不需要更改代码,并且无警告/无错误。罕见的情况(空输入)是可识别的(后缀),必须妥善处理以消除警告/错误。
在分配失败时返回null
/NULL
的分配方法,现在抛出OutOfMemoryError
。这与“ByteBuffer.allocateDirect”的行为相匹配。
适用于:struct分配方法和memAlloc
/memCalloc
/ etc。
*不适用于通过直接绑定调用分配(例如LibCStdlib.malloc
)。
当结构实例未初始化时,不应该返回null的struct成员的Getters永远不应该是NULL
,而是抛出'NullPointerException`。
使用Struct :: isNull
来测试不受信任的结构实例的指针成员。
- bgfx:恢复了
bgfx_init(_vendorId)
和bgfx_update_texture_cube(_side)
参数的本地映射。 (#368) - bgfx:
uint16_t
位域常量现在映射到int
。 (#368) - glfw:
glfwInitHintString
已被重命名为glfwWindowHintString
。 - lmdb:必须重新创建在32位体系结构上开发的数据库。 (#364)
- par_shapes:将
par_shapes_mesh :: triangles
从uint16_t / ShortBuffer
改为uint32_t / IntBuffer
。 - stb_rect_pack:
stbrp_rect :: was_packed
现在映射到Javaboolean
。