Releases: sudoevolve/EUI-NEO
v0.4.2-rc.1
v0.4.2-rc.1 is a pre-release for testing the new package/export workflow, SDK release assets, shader verification, layout regression coverage, and backend build validation.\n\nPlease test:\n- runtime packages\n- SDK packages with find_package(EuiNeo CONFIG REQUIRED)\n- GLFW/SDL2 + OpenGL/Vulkan builds\n- Windows/Linux/macOS packaging
v0.4.1
v0.4.1
EUI-NEO v0.4.1 是一个稳定版发布,重点补齐 Markdown 显示、Loader 生命周期状态、布局回归验证和示例 polish。这个版本继续以 C++17 DSL + components + GLFW/OpenGL 默认路径作为推荐集成方式,同时保留 SDL2/Vulkan 等可选后端供项目级验证。
更新内容
- 新增 Markdown 显示组件,基于 MD4C,覆盖常用 block/span/table/code 等格式,并加入解析和行内布局缓存。
- 新增 DSL Loader 生命周期状态域,支持
destroyOnHide和keepAlive,组件私有状态统一接入ui.state<T>(id)。 - 新增 card 组件、layout debug overlay,以及布局、文本对齐、Markdown、Loader 生命周期视觉验证 fixture。
- 优化
scrollView内容高度测量缓存,降低稳定页面切换时的重复 compose/measure 成本。 - 简化 README 接入说明,只保留最小
add_subdirectory集成方式,详细接入方式移入集成指南。 - 更新 calculator 示例按钮视觉,使用更完整的玻璃圆按钮层次。
- 清理构建和依赖说明,MD4C 已作为 vendored third-party 放入
3rd/md4c。
截图
![]() |
![]() |
发布包说明
- 默认推荐路径仍是 GLFW + OpenGL。
- SDL2 和 Vulkan 可用,但建议在具体项目中单独验证。
- Release workflow 会上传 Windows、Linux、macOS 运行包。
v0.4.0
v0.4.0
EUI-NEO v0.4.0 是 Vulkan 渲染后端与工程化发布能力的一次主版本更新。这个版本把窗口、输入、Runtime 与渲染后端继续拆开,补齐 Vulkan 的图元、文本、图片、背景模糊与缓存生命周期路径,同时加入官网、示例、自动化探针和更明确的后端构建策略。
更新内容
- 新增并完善 Vulkan 渲染路径:支持基础图元、圆角矩形、文本、图片、背景模糊、render cache resolve 与缓存生命周期管理。
- 重构渲染后端架构:拆分 backend-neutral 类型、窗口 surface 类型、图片/文本/图元 facade,并将 OpenGL 具体实现隔离到后端内部。
- 增加后端工厂与自动后端选择,提供更明确的 OpenGL/Vulkan 构建预设,便于在不同平台上切换和验证。
- 优化 Vulkan 性能:降低 present 与内存开销,缓存静态图片纹理,减少交互时 atlas 上传尖峰,并降低上传与 blur 资源开销。
- 优化 OpenGL 提交路径:缓存渲染状态,减少重复状态切换。
- 修复 Vulkan render cache resolve 安全性问题,修复 SDL2 Vulkan drawable size 获取,修复 IME 组合输入编辑时误删已提交文本的问题。
- 修复交互后固定细线问题:OpenGL/Vulkan scissor bounds 改为基于边界取整,避免 fractional clipping 在滑动图交互中漏出 1px 间隙。
- 第三方依赖默认静态链接 bundled GLFW,减少发布包中的额外动态库分发负担。
- 新增 LMS Dashboard 与 Telegram Chat 示例,并在 Gallery About 中展示当前可用后端。
- 新增官网与 GitHub Pages 部署流程,README 已指向 https://sudoevolve.github.io/EUI-NEO/ 。
- 新增自动化 smoke probes、primitive parity fixture、Vulkan lifecycle stress fixture,以及 Windows 内存/CPU/GPU 占用记录。
- 更新渲染后端架构、Vulkan 状态、缓存生命周期、集成指南、发布文档和 Slint 渲染优化对比文档。
发布包说明
- 本次 v0.4.0 Release workflow 使用默认配置构建,发布包默认解析为 OpenGL 后端,不是 Vulkan 专用包。Vulkan 后端代码已包含在本版本中,需要使用
-DEUI_RENDER_BACKEND=vulkan或对应 preset 单独构建。 - Release 包已关闭窗口标题栏 FPS 显示;如需调试帧率,可在应用配置中显式调用
.showFrameCountInTitle(true)。
验证
git diff --check
cmake --build /tmp/eui-carousel-check --target gallery render_clear_probe render_context_probe window_only_probe --parallel
ctest --test-dir /tmp/eui-carousel-check --output-on-failure本轮发布前验证通过:render_clear_probe、render_context_probe、window_only_probe 共 3/3 通过。
v0.3.9 之后的提交
- 8355234 fix(app): hide frame count by default
- aceef43 fix(render): round scissor bounds from edges
- ddde19e build(deps): statically link bundled glfw
- e06fe20 ci(pages): disable jekyll for site artifact
- 5d111eb ci(pages): deploy site from vk branch
- a3d7637 docs(site): add project website and pages deployment
- c0d31bf docs(render): compare Slint and EUI optimization
- a8a897d feat(examples): add dashboard and chat demos
- 8de1d26 fix(input): guard IME composition edits
- c1d17bd test(probes): add automated smoke probes
- c6eb4e9 perf(opengl): cache render state submissions
- 20beb28 refactor(vulkan): align draw path structure
- e5d0ddb docs(tests): record windows memory measurements
- 0ae6850 perf(vulkan): reduce upload and blur resource overhead
- 71d2454 test: add memory baseline probes
- 76405e2 test: organize memory usage notes
- 25f05d4 perf(vulkan): reduce interactive atlas upload spikes
- 7433c33 docs: align backend architecture docs
- a5d59b4 test: document backend memory usage
- 6453449 build: add explicit backend presets
- 4b04470 fix(sdl2): use vulkan drawable size
- 4012173 refactor(render): split backend image and vulkan paths
- 5e7c0f4 perf(vulkan): reduce present and memory overhead
- c691960 docs(vulkan): update cache resolve status
- a1080b0 perf(vulkan): cache static image textures
- b920821 fix(vulkan): resolve render cache safely
- 64f39d5 docs(vulkan): update cache and lifecycle status
- 10839fc test(vulkan): add lifecycle stress fixture
- 0a43786 feat(vulkan): add render cache lifecycle path
- ad01b34 refactor(render): share image loading pipeline
- fe37817 docs(vulkan): update text and image backend status
- 3eaf33b feat(gallery): show active backends in about
- 6e107e0 feat(vulkan): render text and images
- fc95de5 docs(vulkan): update primitive blur status
- 833c2b9 test(render): cover backdrop blur in primitive parity
- ac35490 feat(vulkan): add backdrop blur for rounded rects
- a7c43aa test(render): add primitive parity fixture
- 5311696 refactor(render): route primitives through backend commands
- 77fb3a6 refactor(render): share primitive geometry helpers
- 5dc35f2 feat(vulkan): add primitive render pipeline
- b82b4dc docs(vulkan): require visual parity for backend work
- c288567 Revert "feat(vulkan): draw primitive bounding rectangles"
- aeb5c67 feat(vulkan): draw primitive bounding rectangles
- 0ffb833 refactor(vulkan): keep render pass open for draw commands
- dfc4536 feat(render): add experimental vulkan clear backend
- f49ff4e refactor(render): add backend factory
- d236462 build(render): add automatic backend selection
- 7d5eef9 refactor(core): separate window input and render ownership
- 6af2bcb refactor(window): route window creation through backend
- 63c0181 refactor(render): add backend surface types
- 42d10a6 docs(render): define backend architecture
- fd75f14 refactor(platform): split public window types
- b73b47a refactor(render): hide text primitive implementation
- b5c1eb3 refactor(render): hide image primitive implementation
- ae4db1e refactor(render): move text image implementations to opengl
- ecd596c refactor(render): remove gl types from text image headers
- bdd4b8f refactor(render): move opengl primitive implementation
- 2b490dc refactor(render): narrow primitive header dependencies
- 8633b57 refactor(dsl): depend on render type headers
- 5bbad31 refactor(image): hide primitive behind facade
- 7b96c25 refactor(render): split image fit type
- 73d0bbc refactor(render): split text style types
- 6b4e5d7 refactor(render): split backend neutral types
- 67252cb refactor(render): move runtime cache into backend
- 0798979 refactor(render): isolate opengl backend entry
v0.3.9
v0.3.9
EUI-NEO v0.3.9 是 Vulkan 前的稳定快照,主要把公共接入方式、SDL2 窗口后端、CMake 构建入口和 app/runtime 架构收束到一个可发布状态,方便后续 Vulkan 后端开发从干净基线开始。
更新内容
- 新增
include/eui_neo.h单入口 facade,并补齐include/eui/*薄公共头文件,外部项目可以更稳定地接入 EUI-NEO。 - 新增
eui::neoCMake target,支持公共头文件方式、静态库方式和直接在examples/中开发三种集成路径。 - 示例源码从旧
app/迁移到examples/,示例侧统一只 includeeui_neo.h,不再直接依赖内部core/*路径。 - 新增可选 SDL2 窗口后端,默认仍为 GLFW;SDL2 已覆盖 OpenGL context、DPI、输入、剪贴板、光标、IME、modal 子窗口、托盘、焦点和多窗口基础行为。
- 新增 CMake presets,提供 GLFW/SDL2 的 debug、release 和 SDL2 fetch 构建入口。
- 抽出
AppRunner、MainWindowRuntime、DslWindowManager和DslWindowRuntime,让 GLFW/SDL2 共享更多主循环状态和 DSL 子窗口生命周期。 core/结构继续收束到app、platform、render等区域,删除旧路径兼容壳和无用残留,降低后续 Vulkan 接入时的混乱度。- 增加内部
RenderBackend前置接口,主窗口 update/render/present 流程已先走统一入口,为后续拆 primitive/text/image/render cache 做准备。 - 修正 transformed dirty region 与 transformed hit testing 相关行为。
- 修正 runtime shutdown 时网络加载取消问题。
- 修正多行文本滚动后可见区域和输入稳定性。
- 修正 Windows 下 SDL2 启动 DPI 与 IME 初始化细节。
- 更新 README、中文 README、集成指南、开发发布文档和稳定版路线图。
验证
cmake --build --preset glfw-release --target gallery demo clock calculator serial_tool --parallelcmake --build --preset sdl2-release --target gallery serial_tool --parallel
v0.3.8 之后的提交
7a48190docs(readme): align dependency setup documentation1102076ci(release): add macos release packaging13a78f5docs(workflow): add development and review guides78de722build(deps): move dependency wiring into third-party configc2c730bdocs(components): audit component api documentation31c517cfeat(dsl): add projected transform animations3568f8dfeat(dsl): support transformed hit testingd78c070fix(dsl): align dirty regions with transformsd506b3bfix(runtime): cancel network loads on shutdown8744fc2fix(input): keep multiline text visible when scrolled3f7f5e1build(cmake): expose eui neo library target76a4a00refactor(app): introduce public facade and window backends7430c96docs: document facade integration roadmapb725bc9build(cmake): add backend presets3633c8edocs: mark sdl2 backend complete073aa3ffix(windows): stabilize SDL2 startup DPI and IME92f2a9echore: remove stale compatibility leftovers0d85f78docs: refine vulkan stabilization roadmap
v0.3.8
v0.3.8
EUI-NEO v0.3.8 主要把文本、emoji、输入框和 carousel 的链路统一起来了,跨平台表现更一致。
更新内容
- 新增 FreeType/HarfBuzz 文本 shaping 与统一的文本测量逻辑。
- 启用内置 emoji 渲染,通过 FreeType PNG 支持接入 bundled 的 libpng/zlib。
- 修正 macOS 下 emoji 的缩放、基线和光标定位,让它和 Windows、Linux 走同一条输入/渲染链路。
- 增加输入撤回/重做支持,包括
Ctrl/Cmd+Z、Ctrl+Y、Ctrl/Cmd+Shift+Z。 - 优化多行输入的选区编辑和 IME 光标矩形更新。
- 新增文件对话框选项和文件选择能力。
- 新增 carousel 组件,并完善拖拽、过渡和视差滚动。
- 优化 checkbox 勾选标记的绘制。
- 修正构建和发布细节,包括项目名、线程链接和 upload-artifact v6。
- 精简 bundled
3rd/源码,移除不参与构建的测试、文档、性能数据和示例目录,并在缺少本地依赖时自动联网拉取源码。
截图
v0.3.7 之后的提交
e26d5b2fix(release): update upload-artifact action to v6 for improved functionality9d44854fix(cmake): update project name to EUI-NEO in CMakeLists.txtd4e7bd1feat(platform): add file dialog options and implement file selection functionality4a1cd1cfeat(checkbox): enhance checkbox mark rendering6657d9dfeat(carousel): add carousel componentaf75a63feat(carousel): enhance drag and transition handling in carousel componenta439e8ffeat(carousel): enhance drag and transition handling in carousel component232fa9dfeat(input): add MouseArea and refactor carousel gesturesb253753fix(cmake): link app targets with threads4effdd1fix(carousel): smooth parallax scrollingabcf693feat(text): add freetype shaping and input metricsc206ecafix(input): optimize multiline selection editingc389be9feat(text): enable bundled emoji rendering and input undo432c13afix(ime): ensure IME cursor rectangle validity and update logic
EUI-NEO-v0.3.7
v0.3.7
主要更新
- 新增更完整的布局能力:
- 支持
Flow流式换行布局 - 支持容器
padding - 支持
min/max width/height - 支持轻量
flexGrow/flexShrink
- 支持
- 新增
scrollView组件:- 自动测量内容高度
- 自动处理滚动区域与滚动条
- 不再需要手动估算页面内容总高度
- 新增数字步进器
stepper:- 支持不同进制
- 支持固定显示位数
- 支持按位宽推导范围与显示
- 适合十进制、十六进制、二进制等数值调节场景
- Gallery 进一步优化:
- 页面滚动改为自动测量
- 多处控件区改为响应式布局
- 展示了新的 stepper、scrollView 和布局能力
- 输入与文本体验增强:
- 增加 IME 光标定位与输入支持
- 改善字体渲染清晰度
- 为 picker 滚轮加入文本变换效果
- 图像与渲染能力增强:
- 新增 GIF 动图支持
- 增加模糊光效圆形示例
- 优化阴影渲染和交互平滑度
- 运行时与平台能力增强:
- 新增 DSL 多窗口管理能力
- 新增核心异步任务系统,并接入网络与图像加载
- 新增可选跨平台托盘支持,并修复 macOS tray 桥接稳定性问题
- 工程与安全改进:
- 引入并整理第三方依赖源码
- 改进 macOS / Windows 构建兼容性与日志噪音
- 修复
nanosvg相关安全漏洞 - 更新许可证与 README 说明
- 示例与项目内容更新:
- 新增
serial_tool示例 - 改进图表动画
- 持续打磨
calculator、clock、demo、gallery - 补充并完善 AI 开发
SKILL文档与组件/布局文档
- 新增















