Skip to content

EUI-NEO v0.6.0

Latest

Choose a tag to compare

@github-actions github-actions released this 19 Sep 13:36
· 4 commits to main since this release

EUI-NEO v0.6.0

本次版本新增外部 GPU 图像接入和音频播放,完善窗口配置与多行编辑,并优化虚拟列表滚动、渲染资源回收和 Vulkan 窗口缩放。

主要更新

外部 GPU 图像与渲染

  • OpenGL 与 Vulkan 均支持通过 eui::image::importGpuImage() 导入外部 GPU 图像,并通过图片 DSL 的 .texture(gpuImage, revision) 显示,无需 CPU 读回或重新上传像素。
  • 保留图片组件的裁剪、圆角、透明度、适配和变换能力;增加设备身份校验、内容 revision 更新和 GPU 使用完成后的延迟释放。
  • 新增 DslAppConfig::onShutdown(),用于在主窗口 GPU 设备销毁前释放应用资源。
  • Vulkan 在重建交换链时传递旧交换链,完善创建失败后的清理与恢复,减少连续调整窗口大小的 CPU 开销。
  • 修复内联 SVG 在 builder 链式调用中丢失来源的问题。

列表、输入框与颜色

  • 虚拟列表通过 Runtime 滚动变换移动内容,仅在可见槽位范围变化时重新 compose。
  • 延迟清理仍在使用的渲染层,复用文字图集存储,减少滚动时的资源重建和内存增长。
  • 多行输入框新增 .scrollbar(),支持滚轮、轨道点击和滑块拖动,并保持输入焦点与选区。
  • 多行编辑仅创建可见行的文本元素,局部编辑仅重新测量受影响段落;改善 IME 预编辑换行,避免与原文字重叠。
  • 颜色支持 #RGB#RGBA#RRGGBB#RRGGBBAA,并提供显式解析与校验接口。

窗口配置与音频

  • 应用配置新增窗口位置、最小/最大尺寸、可调整大小、窗口边框、置顶和最大化选项,并接入 GLFW/SDL2 窗口后端。
  • 增加调试标题更新间隔、自定义调试叠层开关与回调;调试默认值跟随 CMake 构建配置。
  • 新增基于 miniaudio 的 eui::audio::Player,提供加载、播放、暂停、停止、跳转、播放时间与错误查询。

示例、构建与文档

  • 新增 VCD 波形查看器,并修复横向滚动时波形消失和滚动内存增长问题。
  • 新增音画同步宣传演示与多页表格快速入门示例。
  • 完善 FetchContent 快速开始、Linux 依赖安装说明、外部 GPU 图像同步与资源生命周期文档。
  • 可选模块在顶层构建默认开启,作为子项目接入时默认关闭,可通过 EUI_ENABLE_MODULES 显式控制。
  • 修复 Release 配置下 GPU 图像测试目标的异常编译选项,兼容 GCC/Clang 发布构建。
  • 新增科学绘图路线图与验收清单;科学绘图模块及高吞吐波形实现尚未合入本版本。

升级说明

  • FetchContent 用户可固定使用 GIT_TAG v0.6.0
  • 子项目需要可选模块时,请显式开启 EUI_ENABLE_MODULES
  • 外部 GPU 图像必须属于目标窗口的兼容上下文/设备;生产者负责同步,Vulkan 图像需保持约定的采样布局。本接口不提供跨 API、跨设备或任意队列资源共享。
  • 外部纹理内容更新后应递增 revision,并在设备销毁前释放应用持有的 GPU 资源引用。
  • 输入框仍采用完整字符串与撤销快照;首次加载、宽度变化和超长单段落的排版成本仍与文本规模有关。
  • Vulkan 窗口缩放优化不代表共享 GPU 内存增长问题已经解决;性能取决于设备、驱动与场景。

验证

  • GitHub Actions:Windows x64、Linux x64、macOS arm64 的 Release 构建、单元测试、SDK 安装、独立消费工程构建与附件上传均通过。
  • Windows 本地 Release:GLFW/OpenGL 与 SDL2/Vulkan 完整构建通过,各 31 项单元与 probe 测试通过。
  • 外部 GPU 图像 probe 在 GLFW/SDL2 × OpenGL/Vulkan 四种组合通过;Vulkan 测试启用 validation layer。
  • 严格 bundled OpenGL 构建、SDK 安装与独立消费工程构建通过;Vulkan shader 生成头一致性检查通过。
  • GLFW/Vulkan SDK 的独立消费工程构建通过,包括 ShaderToy SPIR-V 构建步骤。

发布产物

  • Windows x64、Linux x64、macOS arm64 分别提供运行包和 SDK 包。
  • 发布工作流对三个平台执行 Release 构建、单元测试、SDK 安装和独立消费工程构建。
  • 运行包包含示例应用及配套资源;SDK 用于通过 find_package(EuiNeo CONFIG REQUIRED) 接入。

完整变更v0.5.9...v0.6.0