Skip to content

Releases: sudoevolve/EUI-NEO

v0.4.2-rc.1

15 Jun 08:44

Choose a tag to compare

v0.4.2-rc.1 Pre-release
Pre-release

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

09 Jun 08:03

Choose a tag to compare

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 生命周期状态域,支持 destroyOnHidekeepAlive,组件私有状态统一接入 ui.state<T>(id)
  • 新增 card 组件、layout debug overlay,以及布局、文本对齐、Markdown、Loader 生命周期视觉验证 fixture。
  • 优化 scrollView 内容高度测量缓存,降低稳定页面切换时的重复 compose/measure 成本。
  • 简化 README 接入说明,只保留最小 add_subdirectory 集成方式,详细接入方式移入集成指南。
  • 更新 calculator 示例按钮视觉,使用更完整的玻璃圆按钮层次。
  • 清理构建和依赖说明,MD4C 已作为 vendored third-party 放入 3rd/md4c

截图

Markdown viewer Calculator glass buttons

发布包说明

  • 默认推荐路径仍是 GLFW + OpenGL。
  • SDL2 和 Vulkan 可用,但建议在具体项目中单独验证。
  • Release workflow 会上传 Windows、Linux、macOS 运行包。

v0.4.0

05 Jun 10:45

Choose a tag to compare

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_proberender_context_probewindow_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

31 May 09:15

Choose a tag to compare

v0.3.9

EUI-NEO v0.3.9 是 Vulkan 前的稳定快照,主要把公共接入方式、SDL2 窗口后端、CMake 构建入口和 app/runtime 架构收束到一个可发布状态,方便后续 Vulkan 后端开发从干净基线开始。

更新内容

  • 新增 include/eui_neo.h 单入口 facade,并补齐 include/eui/* 薄公共头文件,外部项目可以更稳定地接入 EUI-NEO。
  • 新增 eui::neo CMake target,支持公共头文件方式、静态库方式和直接在 examples/ 中开发三种集成路径。
  • 示例源码从旧 app/ 迁移到 examples/,示例侧统一只 include eui_neo.h,不再直接依赖内部 core/* 路径。
  • 新增可选 SDL2 窗口后端,默认仍为 GLFW;SDL2 已覆盖 OpenGL context、DPI、输入、剪贴板、光标、IME、modal 子窗口、托盘、焦点和多窗口基础行为。
  • 新增 CMake presets,提供 GLFW/SDL2 的 debug、release 和 SDL2 fetch 构建入口。
  • 抽出 AppRunnerMainWindowRuntimeDslWindowManagerDslWindowRuntime,让 GLFW/SDL2 共享更多主循环状态和 DSL 子窗口生命周期。
  • core/ 结构继续收束到 appplatformrender 等区域,删除旧路径兼容壳和无用残留,降低后续 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 --parallel
  • cmake --build --preset sdl2-release --target gallery serial_tool --parallel

v0.3.8 之后的提交

  • 7a48190 docs(readme): align dependency setup documentation
  • 1102076 ci(release): add macos release packaging
  • 13a78f5 docs(workflow): add development and review guides
  • 78de722 build(deps): move dependency wiring into third-party config
  • c2c730b docs(components): audit component api documentation
  • 31c517c feat(dsl): add projected transform animations
  • 3568f8d feat(dsl): support transformed hit testing
  • d78c070 fix(dsl): align dirty regions with transforms
  • d506b3b fix(runtime): cancel network loads on shutdown
  • 8744fc2 fix(input): keep multiline text visible when scrolled
  • 3f7f5e1 build(cmake): expose eui neo library target
  • 76a4a00 refactor(app): introduce public facade and window backends
  • 7430c96 docs: document facade integration roadmap
  • b725bc9 build(cmake): add backend presets
  • 3633c8e docs: mark sdl2 backend complete
  • 073aa3f fix(windows): stabilize SDL2 startup DPI and IME
  • 92f2a9e chore: remove stale compatibility leftovers
  • 0d85f78 docs: refine vulkan stabilization roadmap

v0.3.8

30 May 10:55

Choose a tag to compare

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+ZCtrl+YCtrl/Cmd+Shift+Z
  • 优化多行输入的选区编辑和 IME 光标矩形更新。
  • 新增文件对话框选项和文件选择能力。
  • 新增 carousel 组件,并完善拖拽、过渡和视差滚动。
  • 优化 checkbox 勾选标记的绘制。
  • 修正构建和发布细节,包括项目名、线程链接和 upload-artifact v6。
  • 精简 bundled 3rd/ 源码,移除不参与构建的测试、文档、性能数据和示例目录,并在缺少本地依赖时自动联网拉取源码。

截图

控件示例

Bing 页面和 API 文本

v0.3.7 之后的提交

  • e26d5b2 fix(release): update upload-artifact action to v6 for improved functionality
  • 9d44854 fix(cmake): update project name to EUI-NEO in CMakeLists.txt
  • d4e7bd1 feat(platform): add file dialog options and implement file selection functionality
  • 4a1cd1c feat(checkbox): enhance checkbox mark rendering
  • 6657d9d feat(carousel): add carousel component
  • af75a63 feat(carousel): enhance drag and transition handling in carousel component
  • a439e8f feat(carousel): enhance drag and transition handling in carousel component
  • 232fa9d feat(input): add MouseArea and refactor carousel gestures
  • b253753 fix(cmake): link app targets with threads
  • 4effdd1 fix(carousel): smooth parallax scrolling
  • abcf693 feat(text): add freetype shaping and input metrics
  • c206eca fix(input): optimize multiline selection editing
  • c389be9 feat(text): enable bundled emoji rendering and input undo
  • 432c13a fix(ime): ensure IME cursor rectangle validity and update logic

EUI-NEO-v0.3.7

19 May 04:26

Choose a tag to compare

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 示例
    • 改进图表动画
    • 持续打磨 calculatorclockdemogallery
    • 补充并完善 AI 开发 SKILL 文档与组件/布局文档

EUI-NEO-v0.3.6

28 Apr 11:12

Choose a tag to compare

本次大幅重构了底层绘制逻辑,优化FBO脏区渲染,极大优化了性能,调整了部分文件路径
1
2
3
4
示例1
示例2

v0.2.9

13 Apr 14:17

Choose a tag to compare

win平台支持深色边框
新增tab menu table toast tooltip textarea switcher checkbox radio dialog tootip
修复了部分bug
image
image
image

v0.2.8

01 Apr 07:15

Choose a tag to compare

修复IME定位
新增nano svg支持
新增框架默认图标
修复部分bug
image
image

v0.2.7

31 Mar 09:39

Choose a tag to compare

优化旧节点回收
新增listview和相关demo
新增开发docs
修复部分bug
image