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/下捆绑的字体或图标字体,均遵循各自上游的许可证和版权声明。
EUI-NEO C++ 轻量跨平台 GUI
a1117762026-08-21 20:49
相关推荐
小白跃升坊3 小时前
AI 助手终于能“回家”了:腾讯开源 Octop,1Panel 点几下就装好m4Rk_6 小时前
【论文阅读】Agent 记忆机制(86):Skill-Pro——用 Non-Parametric PPO 将交互经验演化为可复用技能对象存储与RustFS7 小时前
升级 RustFS 二进制不停机:一条一条换,留一条退路分布式存储与RustFS9 小时前
升级 RustFS 二进制不停机:一条一条换,留一条退路resh_people9 小时前
开源鸿蒙平台 KMP_CMP 三方库「AtomicFU」适配全流程蚂蚁背大象10 小时前
RocketMQ-Rust 1.0.0 发布:用 Rust 做消息队列,这次有哪些变化?miofly10 小时前
GitHub 今日推荐|company-brain:在 Slack 里给团队装个会主动干活的 AI鬓戈10 小时前
Jev 技术(System One Model)开源模型调研小雨爱测11 小时前
DeepSeek Harness 开源贡献手记:从提 Issue 到合入主干的完整旅程喵个咪12 小时前
RushWind Admin — 用 Rust 写的企业级中后台,开源了