画面は数行の XML で
画面を XML で記述し、flexbox でレイアウトして、ビューを C++ で結び付けます。フォーカスは十字ボタンに自動で追従し、タッチやマウスでも操作でき、すべての色がテーマに従います。
<!-- 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 カタログを 1 つ。アプリの実行中に切り替え可能。カラー絵文字と右から左へのテキストはオプションで。
ツール
時間をシミュレートしスクリーンショットを比較するテストハーネス、インスペクター(F12)、XML とテーマのホットリロード、プロファイラー、アプリのテンプレート。
ツールボックス
ロガー、アニメーション、タイマー、バックグラウンドタスク、ストレージ。画面のまわりでアプリに必要なもの。
Cadran
コードを 1 行も書かずに、独自の見た目を
PlayGuard と PlayShelf の見た目である Cadran が、Aurore のデフォルトです。アイコンのレール、カード、モーダル、アクションシート、ベクターアイコン、ライトとダークのテーマ、実行中に切り替えられる言語とテーマ。aurore::Application::setCadran(false) で borealis 本来の見た目のままにできます。
スクリーンショット
いくつかの見た目で見るデモ
Aurore が加えるもの
borealis の続き
Aurore はアップストリーム(xfangfang/borealis)に追従しながら、ほかのフォークから取り入れた修正や機能、そして Aurore を使うアプリに必要なものを加えています。修正以外はすべてオプトインです。
- テーマ:テーマファイルとフォルダー、1 色のアクセントから作るパレット、プリセット、画像、ロゴ、アイコン、装飾、パーティクル。すべてライブで切り替え。
- スタイル:状態ごとのスタイル(フォーカス、押下、無効、ホバー)、トランジション、データバインディング、アクセシビリティラベル。
- ビュー:セルを再利用するグリッドと行、コンテキストメニュー、アイコンボタン、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_demoborealis で作られたもの
これを使って動くアプリ
- PlayGuardNintendo Switch の見守り設定を本体で
- PlayShelfSwitch 向けのゲームライブラリ、カタログ、ダウンロード
- Moonlight-SwitchSwitch 向けの Moonlight ゲームストリーミング
- wiliwiliPC、PS4、PS Vita、Xbox、Switch 向けの bilibili クライアント
- switchfinPC、PS4、Switch 向けの Jellyfin クライアント
- SimpleModDownloaderGameBanana の MOD を Switch でダウンロード
ドキュメント
ドキュメント
ライセンス
borealis のコードは Apache 2.0 ライセンスです。Aurore のデフォルトの見た目 Cadran は GPLv3 で、それを使って作ったアプリも同様です。JigSawFr がメンテナンスするフリーソフトウェアです。










