LiquidGlass UI 2.4.5 / SDK

LiquidGlass UI SDK 2.4 — 实际测试记录

本次运行环境:OpenJDK 21.0.11 / Linux x64 / Mesa 25.0.7-2 / llvmpipe LLVM 19.1.7。窗口由 Xvfb + X11 提供;宿主接入测试使用自建 EGL context 和 FBO。没有使用 Windows 实机、真实 JDK 8 VM 或硬件显卡进行验证。

编译和目标

同一份 Java 源码分别按 --release 8 和 --release 21 编译,发布库、展示及示例 class 版本分别为 52 / 65。所有 68 个原控件类保留。新增的全局质量、颜色和三次曲线 API 在两版保持相同签名;不存在虚构的 Java 21 独有性能实现。

11 个完整示例分别直接引用各自发行 JAR 编译成功,包含无 main 的 HostIntegration 接入类。Javadoc 从当前 91 个 API 源文件生成,两个目标共用同一套 API 文档。文档和包内均不分发字体二进制。

原有回归:313 项

测试检查数当前记录
控件 / 布局 / 输入逻辑120tests/results/2.4/logic.log
状态动效25tests/results/2.4/motion.log
中性主题与连续拖动37tests/results/2.4/neutral.log
微调器 / 统一间距46tests/results/2.4/stepper.log
GPU / 宿主接入16tests/results/2.4/gpu.log
原材质与字体动画缓存3tests/results/2.4/material-gpu.log
高光位置 / 灰阶 / 模糊10tests/results/2.4/neutral-gpu.log
真实窗口控件交互32tests/results/2.4/window.log
真实窗口完整拖动8tests/results/2.4/neutral-window.log
真实窗口横向微调器16tests/results/2.4/stepper-window.log

新功能:66 项

QualityLogicTest 28 项:质量开关、主题拷贝、色值解析/验证、四角顺序、控制柄范围、不可变 corner profile、主题设置、绘制配置、父子状态隔离及变换后的半径。

SdfAtlasTest 8 项:真实有符号距离的内外符号、距离单调性、非二值编码、对称性、空字形/填满字形和抗锯齿种子。生成算法是分离平方欧氏距离变换,不是把 alpha 模糊后改名为 SDF。

QualityGpuTest 17 项:OFF 的硬覆盖,ANALYTIC/HIGH 的有效覆盖率与不同路径;四个独立三次曲线与另写的单调多项式参考比对 9,372 个像素;三次形状不同于圆弧、控制柄影响真实像素、2x 轮廓一致、帧间确定性;真实 SDF 图集和 GL 重建、50 种缩放复用缓存;文本起点/基线对齐避免静态子像素变化、字距参与测宽、显式 DPI 生成新字号纹理;高光色/材质 tint 影响真实 GL 结果,最终 GL_NO_ERROR。

QualityWindowTest 13 项:通过桌面鼠标和键盘操作实际第九页,切换全局 AA 与字体路径、保留输入模型、拖动曲线控制柄、打开颜色编辑窗口、提交 ARGB 更新全局主题、关闭弹窗和窗口。123 帧完成,报告 GL_NO_ERROR。

新增逻辑/SDF/GPU 记录为 tests/results/2.4/quality.log,真实窗口记录为 tests/results/2.4/quality-window.log。

合计 379 项不同检查通过。 这不是穷尽每个控件的全部操作,也不是硬件性能或全部平台兼容性保证。

两个发行物的运行

上面的旧测试主要执行 Java 8 目标 class,在 OpenJDK 21 VM 上运行。为了验证不是只打包了 Java 21 文件名,还单独对 Java 21 发行库执行 16 项宿主 GPU 检查与 17 项新质量 GPU 检查;这些属于重复验证,不重复计入 379 项。

两个目标的实际 demo JAR 各完成第九页 8 帧运行及截图,均使用 OpenGL 3.3 Compatibility,逐帧检查 GL_NO_ERROR。日志为 jdk8-demo.log / jdk21-demo.log / jdk21-gpu.log / jdk21-quality-gpu.log。

native 和打包

Linux .so 与 Windows x64 DLL 均由当前 2.4 C 源码重建。Java / native 协议增加为 24064;发布检查核对 JNI 导出、PE/ELF 格式、资源与 class 版本。

Windows 固定 HDC、context 验证/回退的两个平台源文件与原 2.3 包逐字节比较不变。这只表明保留修复,并不代表本次在 Windows 实际运行。Windows DLL 已交叉编译,不把它记为 Windows 兼容性测试。

发行检查结果在 tests/results/2.4/release-check.json。最终 ZIP 已重新解压后执行离线双目标构建、两种目标的 11 个示例编译及两种 demo 各 4 帧启动;均完成且检查帧返回 GL_NO_ERROR,日志保留在 tests/results/2.4/package-*。

没有做出的承诺

未实现 MSDF 多通道字体;未承诺小字号使用 SDF 永远更清楚。默认 AUTO 保留原生 DPI 小字号 hinting;字体在本机缓存缺失时进行一次 CPU 栅格化/距离变换,不逐帧重建。

HIGH 是 UI SDF 覆盖的四子像素重建,不是整个宿主画面的 4xMSAA/FXAA。四角距离使用有界 GPU 数值最近点求解,不宣称闭式精确解或 Apple 私有连续曲线。旧控件动画和强模糊默认值保留。

实际软件 OpenGL 测试确实执行 GLSL,但不代表使用物理 GPU。JDK 8 运行兼容性以 API 与字节码目标检查覆盖,真实 JDK 8 VM 未验证。