EUI-NEO是一个纯 C++ 做的轻量跨平台 GUI
环境要求
CMake 3.14+
C++17 编译器:MSVC 19.29+(Visual Studio 2019 16.11+)、GCC/MinGW-w64 12+ 或 Clang 14+
OpenGL 开发文件(用于默认渲染器)
将 EUI-NEO 放置在
external/EUI-NEO目录下,然后创建:cmake_minimum_required(VERSION 3.14) project(MyProject LANGUAGES C CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) add_subdirectory(external/EUI-NEO) add_executable(my_app app.cpp) eui_neo_configure_app(my_app)
app.cpp:#include "eui_neo.h" namespace app { const DslAppConfig& dslAppConfig() { static const DslAppConfig config = DslAppConfig{} .title("My App") .pageId("my_app") .windowSize(960, 640); return config; } void compose(eui::Ui& ui, const eui::Screen& screen) { ui.column("root") .size(screen.width, screen.height) .padding(32.0f) .content([&] { ui.text("title") .text("Hello EUI-NEO") .fontSize(28.0f) .build(); }) .build(); } } // namespace app构建:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release cmake --build build --parallel ./build/my_app
eui_neo_configure_app()会添加所选的 GLFW/SDL2 入口点、链接eui::neo、应用平台可执行文件设置,并部署运行时资源。应用程序不应直接引用core/下的文件。发布版 SDK 同样支持该目标配置:
find_package(EuiNeo CONFIG REQUIRED) add_executable(my_app app.cpp) eui_neo_configure_app(my_app)有关安装、FetchContent、SDL2/Vulkan 选择以及自定义主循环的详细信息,请参阅[集成指南](Integration Guide)。有关构建本仓库及依赖要求的说明,请参阅[开发与发布](Development And Release)。
Xmake
Xmake 3.0+ 支持源码构建以及 xrepo 库使用者:
set_languages("cxx17") add_requires("eui-neo") target("my_app") set_kind("binary") add_files("main.cpp", "app.cpp") add_packages("eui-neo")xrepo 包提供
eui_neo库;main.cpp负责窗口循环和应用程序入口点。直接构建本仓库时,eui.app规则会添加所选平台的入口点并部署资源。构建仓库中的示例:
xmake f -m debug -y --apps=y --user_apps=y xmake build gallery xmake f -m release -y --apps=y --user_apps=y xmake build gallery在 Windows 上,可执行文件路径为
.xmake/build/windows/x64/<debug|release>/gallery.exe。有关后端选项和其他目标,请参阅[集成指南](Integration Guide)。
可选模块
可选功能模块位于
modules/目录下,相关文档请参阅[模块指南](Modules Guide)。
项目结构
目录
说明
assets/运行时资源:字体、PNG、SVG 和图标
components/基于 DSL 构建的可复用 UI 组件
core/DSL、运行时、图元、文本、图像、网络和平台代码
docs/实现说明和 API 文档
examples/简短的单屏 API 演示
modules/可选功能模块,如键盘和串口
apps/较长或多页面应用;每个应用位于独立文件夹中
include/公共头文件路径:
eui_neo.h和eui/*外观头文件
tests/探测源码、夹具应用和本地基准测试说明
3rd/第三方构建源码和单文件依赖项
文档
[DSL 设计与当前实现](DSL Design And Current Implementation)
组件
模块
[状态模型](State Model)
布局
事件
动画
异步
[渲染后端架构与管线](Render Backend Architecture And Pipeline)
[保留层缓存](Retained Layer Cache)
图像
网络
[平台能力](Platform Capabilities)
[集成指南](Integration Guide)
[Shadertoy 图元](Shadertoy Primitive)
[开发与发布](Development And Release)
许可证
EUI-NEO 的源代码基于 Apache License 2.0 许可证开源。
3rd/下的第三方代码、CMake 获取的构建时可选依赖项,以及assets/下捆绑的字体或图标字体,均遵循各自上游的许可证和版权声明。


480

被折叠的 条评论
为什么被折叠?



