<!-- resources/xml/activity/hello.xml -->
<aurore:AppletFrame>
<aurore:Box
title="Hello"
axis="column"
alignItems="center"
justifyContent="center"
gap="20">
<aurore:Label
text="@i18n/hello/welcome"
fontSize="24" />
<aurore:Button
id="hello_button"
style="primary"
width="300"
text="Say hello" />
</aurore:Box>
</aurore:AppletFrame>// hello_activity.hpp
#include <aurore.hpp>
class HelloActivity : public aurore::Activity
{
public:
CONTENT_FROM_XML_RES("activity/hello.xml");
void onContentAvailable() override
{
button->registerClickAction([](aurore::View*) {
aurore::Application::notify("Hello!");
return true;
});
}
private:
AURORE_BIND(aurore::Button, button, "hello_button");
};Hello
欢迎使用 Aurore!
返回
在线演示
真正的演示,就在你的浏览器里
用 Emscripten 编译的 Aurore 演示:与 Switch 上相同的代码,由 WebGL 2 绘制。可用键盘、鼠标、触摸屏或屏幕上的手柄操作;所有主题和语言一应俱全。
功能
游戏机菜单所需的一切
为手柄而生
焦点随十字键自动移动;触摸和鼠标同样可用,底栏显示当前可用的按键。
Flexbox 布局
每个视图都由 Yoga 排布、用 XML 描述,只在需要的地方写代码。
gap、flexWrap、每个角单独设置圆角。矢量图形
由 nanovg 硬件加速:OpenGL、Direct3D 11、Switch 上的 deko3d、Vita 上的 GXM,并按电视尺寸缩放。
现成的组件
标签页、复用单元格的列表和网格、设置单元格、对话框、操作菜单、轻提示、滑块、Markdown,全部可由主题重新设计样式。
主题
每种颜色都是一个主题键。主题文件和文件夹可带来调色板、图片、标志、图标和装饰,在应用运行时切换,并检查对比度。
15 种语言
每种语言一个 JSON 目录,可在应用运行时切换;彩色表情符号和从右到左的文字可选。
工具
支持模拟时间和截图比对的测试框架、检查器(F12)、XML 和主题的热重载、性能分析器、应用模板。
工具箱
日志、动画、计时器、后台任务、存储:应用在界面之外所需的一切。
Cadran
独特的外观,无需一行代码
Cadran 是 PlayGuard 和 PlayShelf 的外观,也是 Aurore 的默认外观:图标导轨、卡片、模态窗口、操作菜单、矢量图标、浅色和深色主题,语言和主题可在应用运行时切换。aurore::Application::setCadran(false) 可保留 borealis 原本的外观。
截图
不同外观下的演示
Aurore 的新增内容
延续 borealis
Aurore 跟随上游(xfangfang/borealis),并加入从其他分支挑选的修复和功能,以及其应用所需的内容:除修复外,每一项都需要主动开启。
- 主题:主题文件和文件夹、由一种强调色生成的调色板、预设、图片、标志、图标、装饰和粒子,全部实时切换。
- 样式:按状态设置的样式(焦点、按下、禁用、悬停)、过渡动画、数据绑定和无障碍标签。
- 视图:复用单元格的网格和行、上下文菜单、图标按钮、Markdown。
- 布局:Yoga 3、
gap、焦点可跨行移动的flexWrap、每个角单独的圆角、渐变。 - 文字:每个标签的字体缩放、自动缩小以适应、干净的换行。
- 焦点与提示:焦点不再丢失在隐藏或销毁的视图中;底栏提示保持稳定。
- 平台:SDL 下手柄重新连接、浏览器(Emscripten)、Switch 上 deko3d 的命令内存。
- 速度:文字或尺寸不变时不重新布局,XML 属性按需注册,释放未使用的纹理。
使用
在你的项目中
- 以 C++20 构建你的项目,并启用 RTTI 和异常。
- 将 Aurore 添加为子模块,并把它的
resources文件夹复制到你的项目根目录。git submodule add -b main https://github.com/JigSawFr/aurore.git library/aurore git submodule update --init --recursive - 在你的
CMakeLists.txt中,于project()之前包含commonOption.cmake和toolchain.cmake,之后添加该库,并链接Aurore::aurore。 - 用
-DAURORE_PLATFORM=…选择平台:DESKTOP、SWITCH、PSV、PS4、ANDROID、IOS。
从零开始?template/ 是一个可为桌面和 Switch 构建的最小应用。
从 borealis 迁移?更换子模块,然后把 brls::、<borealis.hpp> 和 BRLS_ 改成 Aurore 的名称:一次查找替换即可。 →
构建演示
在 Linux、macOS 或 Windows 上;其他平台的命令与 CI 中的相同。 →
git clone --recursive https://github.com/JigSawFr/aurore.git
cd aurore
cmake --preset desktop-glfw
cmake --build --preset desktop-glfw
./build/desktop-glfw/aurore_demo基于 borealis 打造
运行在它之上的应用
- PlayGuardNintendo Switch 的家长控制,直接在主机上
- PlayShelfSwitch 的游戏库、目录和下载
- Moonlight-SwitchSwitch 上的 Moonlight 游戏串流
- wiliwili适用于 PC、PS4、PS Vita、Xbox 和 Switch 的哔哩哔哩客户端
- switchfin适用于 PC、PS4 和 Switch 的 Jellyfin 客户端
- SimpleModDownloader在 Switch 上下载 GameBanana 的模组
文档
文档
许可证
borealis 的代码采用 Apache 2.0 许可证;Aurore 的默认外观 Cadran 采用 GPLv3,用它构建的应用也是如此。由 JigSawFr 维护的自由软件。










