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
相关推荐
Flynt3 小时前
就编译了一下代码,浏览器密码没了——Rust 生态遭遇史上最狠供应链攻击小小龙学IT4 小时前
ZeroMQ(libzmq)开源消息库深度解析:brokerless 时代的轻量消息内核程序员老刘4 小时前
被400次配置逼疯后,我开源了个小工具天工开物开源基金会5 小时前
具身智能开源全栈生态协同分论坛成功举办IvanCodes7 小时前
GitHub 本周热门开源项目:Agent Infra与端侧 AI|8.17–8.23fthux8 小时前
装修怕增项、合同看不懂?我做了 RenoPit,帮普通业主提前发现装修坑a1117768 小时前
艺术的箱庭小镇 THreeJS 开源找方案8 小时前
MiniMax开源5款大模型全链路,从文本到视频生成全覆盖河南三丰环保设备有限公司8 小时前
哪个机构教炼油设备技术教得好