LiquidGlass UI 2.4.5 / SDK

2.4.2 实际验证记录

环境:OpenJDK 21.0.11,Linux x64,Mesa llvmpipe 25.0.7 / OpenGL 3.3 Core 与 Compatibility Profile。发布源码分别以 --release 8 和 --release 21 编译。

本次范围

本次保留并重新执行原有 425 项检查,新增 75 项设置相关检查,合计 500 项独立断言。这个总数是各最终成功日志中 TOTAL 的和;重复启动、截图、开发期间失败或未完成的尝试不加入总数。

新增检查:

旧版回归包含 120 项基础逻辑、25 项材质/动效、37 项连续拖动、46 项微调器/间距、28 项质量/API、8 项 SDF 图集、23 项间距/状态、各组真实 GPU 像素检查,以及实际窗口通用操作。具体计数由 tests/results/2.4.2/regressions.json 记录,不以历史日志替代本次执行。

关键像素证据

在 9 逻辑单位圆角的控件上,对同一个棋盘背景渲染,边缘平均通道差为:

0 → 10:  5.2857142857
10 → 20: 2.2857142857
20 → 30: 1.0

三段都真实改变 shader 输出。原式 min(strength, bevel * 0.80) 在这个控件上,10、20、30 会全部触及同一位移上限。新式是连续、有界的屏幕空间强度函数,不是物理 IOR。

窗口测试还对不覆盖控件的同一块背景进行网格开/关像素对比;不是只确认复选框状态或日志字符串。

两个目标的最终展示 JAR 还分别实际运行了 12 帧,均为 GL_NO_ERROR;新的 MaterialControls 完整示例也实际运行 8 帧并正常关闭。这些启动不重复计入断言总数。

构建和完整性

两种目标保留相同的公开 API,字节码主版本分别为 52 / 65。新 GlassSettingsPanel、GlassSettingsDialog、BackgroundSettings 都在库 JAR 中,不仅存在于展示程序。原有用户清单中的 68 类控件保留。

12 个完整示例一起编译;API 文档与 Javadoc 由当前源码离线生成。发布检查验证 Main-Class、shader、双平台 native、两个目标的公开声明、文档链接及无字体二进制。命令为 python tests/verify-release.py。

原生协议仍为 24164。与 2.4.1 的 native 源码及 Windows/Linux 原生二进制一致,不需要为这次参数面板更改 WGL 生命周期;再次核对 Java/native 导出。共用曲线裁剪 shader 和字体 shader 没有被替换回旧版本。

不能由测试外推的结论

运行虚拟机是 OpenJDK 21,不是真正的 Java 8 VM。Windows x64 原生库仍没有 Windows 实机验证;二进制导出检查不等于 Windows 运行成功。llvmpipe 是软件 OpenGL 驱动,不代表任何实际显卡的性能基准。

开发时一次窗口检查暴露了设置对话框在缩小窗口后越界,已修复并重测;一次较早的窗口测试未在工具时限内完成,没有记为通过。最终完整运行的日志才用于上述计数。此前尝试放在 tests/results/2.4.2/attempts/ 以区别最终结果。

独立窗口会自动读取 ui.background(),宿主 attach 模式不会自动重画宿主的 3D 背景。设置为当前 Ui 的共享主题参数,不是给所有已有控件强制添加一套独立物理材质。现有 SDR、MSAA resolve、一进程一个 NativeBackend 等边界仍然成立。

复现

sh build.sh all
sh build-docs.sh
sh tests/run-material-settings.sh

设置测试脚本需要 Linux 的 gcc、Mesa EGL/GL、X11、Xvfb 和桌面 JDK;运行已经打好的示例 JAR 不需要 gcc 或下载任何依赖。普通渲染不做像素读回;本报告中的像素读取只在测试/显式截图时发生。