EUI-NEO v0.5.8
EUI-NEO v0.5.8
本次版本完善动态图像输入和双渲染后端能力,并将 Xmake 外部项目接入整理为开箱即用的单文件应用模式。
发布日期:2026-09-03
主要更新
动态纹理与图像流
- 新增线程安全、有界的
eui::ImageStream,生产线程提交帧,渲染线程消费最新帧。 - 新增
RGBA8、BGRA8、NV12、I420和P010图像格式。 - 支持 BT.601、BT.709、BT.2020,以及 Full/Limited 色彩范围。
- OpenGL 与 Vulkan 均支持 NV12/I420/P010 原生多平面纹理上传和 GPU YUV 转 RGB。
- 后端不支持原生 YUV 格式时自动回退到 CPU RGBA8 转换,保持 API 和显示结果一致。
- 动态纹理支持尺寸、格式切换、更新失败回退和最新帧丢弃策略。
- 动态图像不会错误进入 retained layer 缓存,帧更新会正确触发局部重绘。
渲染与性能
- 优化 retained image、文本损坏区域和 backdrop blur 的捕获与采样路径。
- 保留 OpenGL/Vulkan retained layer 缓存,连续尺寸变化时复用容量并延迟安全释放资源。
- Vulkan image shader、rounded-rect shader 和对应 SPIR-V 生成头同步更新。
应用入口与构建
- Xmake 外部项目可通过
app_runner = true只编写一个main.cpp,由框架提供窗口、输入、渲染和应用主循环。 - Xmake 支持 GLFW/SDL2 与 OpenGL/Vulkan 组合选择,默认不构建可选 FFmpeg 播放示例。
- 显式启用
--ffmpeg_video=y时,Xmake 才拉取并构建 FFmpeg 视频示例。 - CMake 与 Xmake 版本号统一更新为 0.5.8。
- Windows Xmake 文档补充 MinGW-w64 工具链选择和宿主依赖配置说明。
- 修复 GLFW 静态库缺少 Null 平台实现导致的
_glfwConnectNull链接错误。 - 修复 MinGW 构建误传 MSVC
/TC等参数的问题,并补充 JetBrains MinGWbfd-plugins兼容处理。 - 修复 macOS GLFW Cocoa 定时器、Objective-C 源文件编译模式和 ARC 设置,兼容 Apple Silicon 构建。
- macOS Vulkan 配置可通过 Homebrew 前缀自动发现 SDK,不需要写死机器路径或手动设置固定目录。
- Linux GLFW 补充
librt链接,兼容仍将clock_gettime等符号放在 librt 中的旧版系统。 - 补充 CentOS/RHEL 常见系统字体目录探测,改善精简安装环境下的默认字体加载。
- xmake-repo 的
eui-neo配方同步 Linux 托盘检测:默认不启用托盘以保证基础应用无需 GTK/GLib 开发包;显式启用时优先使用gio-2.0的 SNI 后端,并支持旧版 AppIndicator 回退,也可通过tray=false保持关闭。 - xmake-repo port 中的 GLFW、glad、md4c 及框架桥接 C 源文件显式按 C 编译,避免 MSVC 将 C99 指定初始化误判为 C++。
- xmake-repo 通过内部 port revision 自动失效旧包缓存,避免继续使用修复前的二进制包。
文档与示例
- 新增中文《动态纹理与图像流》文档,说明帧格式、色彩转换、线程模型、回退路径和测试方法。
- 新增
dynamic_texture格式验证示例。 - 新增可选
ffmpeg_video_player示例,演示 FFmpeg 解码到 NV12 再提交ImageStream的完整链路。 - 更新 Xmake、CMake、SDK 和运行资源集成说明。
升级说明
- 动态纹理 API 为新增能力,不改变现有静态图片 API。
ImageFrame提交后必须保持其平面缓冲区有效且不可修改,直到该帧不再被引用。- YUV 帧应明确填写色彩空间和色彩范围;不确定时不要依赖默认值。
- FFmpeg 播放示例属于可选示例,不会成为核心库的运行时依赖。
验证
image_stream:帧校验、容量限制、最新帧消费、RGBA/BGRA/YUV 转换。image_stream_primitive:原生动态纹理创建、格式切换、更新失败回退。dirty_rects:动态内容与局部重绘交互。- Windows/MSVC:已完成
eui_neoOpenGL/GLFW 回归构建,桥接 C 文件按 C 编译且无 C7555 或_glfwConnectNull链接错误。 - Linux:已完成 GLFW 源文件、X11 链接项、
librt和托盘依赖的配置审计;运行验证需要目标机安装对应 X11 开发包。 - macOS:已完成 Cocoa/Objective-C、Homebrew Vulkan SDK 和 Apple Silicon 配置审计;运行验证需要 macOS/Xcode 环境。
- OpenGL/Vulkan 动态纹理示例和 SDL2/GLFW 组合仍应在各目标平台分别运行验证。
开发通道
- 稳定版本固定为
v0.5.8,源码与依赖版本可复现。 - 最新开发源码通过 EUI-NEO
dev分支和 xmake-repo 的eui-neo dev包提供,不改变v0.5.8的发布内容。
完整变更:v0.5.7...v0.5.8