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
相关推荐
zzzzzz31015 小时前
anthropics/skills:高关注度“官方技能”项目,应该怎样读梦梦代码精1 天前
《回收租赁系统技术选型避坑指南:业务闭环与二开自由度详解》冬奇Lab1 天前
一天一个开源项目(第213篇):public-apis —— 474k Star 的免费 API 终极清单vipjx11 天前
2026实测百度网盘文件满速下载方案:主流油猴脚本搭配技巧汇总辰域电子1 天前
STM32项目开源:智能万年历/智能闹钟设计(代码+原理图+仿真)分布式存储与RustFS1 天前
RustFS 1.0 GA 前的生产验收清单:从 rc.1 到 GA 该准备什么ApacheSeaTunnel1 天前
195 次合并、13 个新连接器!Apache SeaTunnel 8 月有哪些新进展?上官唐云1 天前
2024届本科 | C++ Linux服务端开发求职:从嵌入式到底层服务端的技术之路(附开源项目+简历)苏灿烤鱼1 天前
当程序员遇到装修:用 AI 画 CAD、搭房子,甚至自己做家具