Boréale のプロジェクト · borealis のフォーク

Switch のようなインターフェースを、あらゆる画面のアプリに

Aurore は、コントローラー・テレビ・タッチスクリーン向けの C++ UI ライブラリです。最初から Nintendo Switch のメニューのような見た目で、まったく別のスタイルにも作り替えられます。

まだリリースはありません。サブモジュールは main を追従します。

デフォルトの見た目 Cadran で表示した Aurore のデモ。左にアイコンのレール、カード、チップ、ボタン、下にコントローラーのボタン表示。

動作環境

  • Nintendo Switch
  • Android
  • iOS
  • Windows
  • macOS
  • Linux
  • PS4
  • PS Vita
  • Browser

画面は数行の XML で

画面を XML で記述し、flexbox でレイアウトして、ビューを C++ で結び付けます。フォーカスは十字ボタンに自動で追従し、タッチやマウスでも操作でき、すべての色がテーマに従います。

15 分で作ってみる →

画面 resources/xml/activity/hello.xml
<!-- 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
// 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 で描画します。キーボード、マウス、タッチスクリーン、画面上のパッドで操作でき、すべてのテーマと言語に対応。

ブラウザーで試す

機能

ゲーム機のメニューに必要なものすべて

Cadran

コードを 1 行も書かずに、独自の見た目を

PlayGuard と PlayShelf の見た目である Cadran が、Aurore のデフォルトです。アイコンのレール、カード、モーダル、アクションシート、ベクターアイコン、ライトとダークのテーマ、実行中に切り替えられる言語とテーマ。aurore::Application::setCadran(false) で borealis 本来の見た目のままにできます。

Cadran のキット →

テーマフォルダー:冬

スクリーンショット

いくつかの見た目で見るデモ

Aurore が加えるもの

borealis の続き

Aurore はアップストリーム(xfangfang/borealis)に追従しながら、ほかのフォークから取り入れた修正や機能、そして Aurore を使うアプリに必要なものを加えています。修正以外はすべてオプトインです。

すべての変更とその API →

Aurore と borealis を並べて比較 →

  • テーマ:テーマファイルとフォルダー、1 色のアクセントから作るパレット、プリセット、画像、ロゴ、アイコン、装飾、パーティクル。すべてライブで切り替え。
  • スタイル:状態ごとのスタイル(フォーカス、押下、無効、ホバー)、トランジション、データバインディング、アクセシビリティラベル。
  • ビュー:セルを再利用するグリッドと行、コンテキストメニュー、アイコンボタン、Markdown。
  • レイアウト:Yoga 3、gap、行をまたいでフォーカスが移動する flexWrap、角ごとの角丸、グラデーション。
  • テキスト:ラベルごとの文字サイズ倍率、収まるように縮小、きれいな改行。
  • フォーカスとヒント:非表示や破棄されたビューでフォーカスが失われない。フッターのヒントも安定。
  • プラットフォーム:SDL でのコントローラー再接続、ブラウザー(Emscripten)、Switch での deko3d のコマンドメモリ。
  • 速度:テキストやサイズが変わらなければ再レイアウトしない、XML 属性は必要なときに登録、使われないテクスチャは解放。

使ってみる

あなたのプロジェクトに

  1. プロジェクトを C++20 で、RTTI と例外を有効にしてビルドします。
  2. Aurore をサブモジュールとして追加し、その resources フォルダーをプロジェクトのルートにコピーします。
    git submodule add -b main https://github.com/JigSawFr/aurore.git library/aurore
    git submodule update --init --recursive
  3. CMakeLists.txt で、project() の前に commonOption.cmake と toolchain.cmake をインクルードし、その後でライブラリを追加して Aurore::aurore をリンクします。
  4. -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 で作られたもの

これを使って動くアプリ

ドキュメント

ドキュメント

ライセンス

borealis のコードは Apache 2.0 ライセンスです。Aurore のデフォルトの見た目 Cadran は GPLv3 で、それを使って作ったアプリも同様です。JigSawFr がメンテナンスするフリーソフトウェアです。