CMake 引入
add_subdirectory(external/EUI-NEO)
add_executable(my_app
external/EUI-NEO/core/app/glfw_app_main.cpp
app.cpp
)
eui_neo_configure_app(my_app)
Why EUI-NEO
静止时等待事件,有动画才推进帧;脏区缓存减少重复绘制。
GLFW / SDL2 窗口后端,OpenGL / Vulkan 渲染后端,同一套 DSL 输出。
无需引入 WebView 或脚本运行时,直接在 C++17 项目里声明界面和状态。
输入、弹层、选择器、表格、图表和滚动容器覆盖工具型应用常见场景。
Documentation
按渲染、输入、组件、平台能力或构建流程快速定位仓库文档。
Rendering Core
窗口、输入、Runtime 和 GPU 后端各守边界,让同一套 DSL 输出到 OpenGL 或 Vulkan。
C++ DSL 构建 UI 树,Runtime 负责布局、状态同步和交互派发。
按 id 缓存图元,变化时计算保守脏区,必要时升级 full redraw。
OpenGL 与 Vulkan 各自管理 pipeline、atlas、texture 和 frame lifecycle。
Component Layer
按钮、输入、弹层、选择器、图表和数据表都只组合 DSL 树,不穿透后端 primitive。
Quick Start
add_subdirectory(external/EUI-NEO)
add_executable(my_app
external/EUI-NEO/core/app/glfw_app_main.cpp
app.cpp
)
eui_neo_configure_app(my_app)
#include "eui_neo.h"
namespace app {
const DslAppConfig& dslAppConfig();
void compose(eui::Ui& ui, const eui::Screen& screen);
}
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel
./build/my_app