<!-- 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,全部都能由主題重新設計樣式。
主題
每種顏色都是一個主題鍵。主題檔案和資料夾可帶來調色盤、圖片、標誌、圖示和裝飾,在 App 執行時切換,並檢查對比度。
15 種語言
每種語言一個 JSON 目錄,可在 App 執行時切換;彩色表情符號和由右至左的文字可選用。
工具
支援模擬時間和截圖比對的測試框架、檢查器(F12)、XML 和主題的熱重載、效能分析器、App 範本。
工具箱
記錄器、動畫、計時器、背景工作、儲存空間:App 在畫面之外需要的一切。
Cadran
獨特的外觀,不用寫一行程式碼
Cadran 是 PlayGuard 和 PlayShelf 的外觀,也是 Aurore 的預設外觀:圖示軌道、卡片、強制回應視窗、動作選單、向量圖示、淺色和深色主題,語言和主題可在 App 執行時切換。aurore::Application::setCadran(false) 可保留 borealis 原本的外觀。
截圖
不同外觀下的示範
Aurore 新增的內容
延續 borealis
Aurore 跟隨上游(xfangfang/borealis),並加入從其他分支挑選的修正和功能,以及它的 App 所需的內容:除了修正之外,每一項都需要主動啟用。
- 主題:主題檔案和資料夾、由一種強調色產生的調色盤、預設集、圖片、標誌、圖示、裝飾和粒子,全部即時切換。
- 樣式:依狀態設定的樣式(焦點、按下、停用、懸停)、轉場效果、資料繫結和無障礙標籤。
- 檢視:重複利用儲存格的格線和列、內容選單、圖示按鈕、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 建置的最小 App。
從 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 打造
在它之上執行的 App
- 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,用它建置的 App 也是如此。由 JigSawFr 維護的自由軟體。










