ひと目で
borealis: 4, Aurore: 15
翻訳カタログ。アプリの実行中に切り替え
borealis: C++17, Aurore: C++20
言語規格。RTTI と例外を使用
borealis: Yoga 2, Aurore: Yoga 3
標準の CSS flexbox。
gapとflexWrapもborealis: 7, Aurore: 8
プラットフォーム。7 つにブラウザーが加わりました
Aurore の新機能
borealis にないもの
Cadran は最初から有効で、1 回の呼び出しでオフにできます。ほかはアプリが必要なときに使えます。
独自の見た目、Cadran
デフォルトで有効:アイコンのレール、カード、シートとダイアログ、約 60 のベクターアイコン。
setCadran(false)で borealis の見た目のままにできます。ファイルで作るテーマ
.themeファイルとフォルダー:1 色のアクセントから作るパレット、プリセット、9 つの季節と行事、画像、装飾。どのテーマもコントラストを確認済みです。スタイルとデータバインディング
focus:、pressed:、disabled:、hover:属性、アニメーションするトランジション、bindで XML から結び付ける値。アクセシビリティ
すべてのビューに役割・ラベル・値、15 言語でのフォーカスの読み上げ、2 つのハイコントラストテーマ、文字サイズの拡大、動きの軽減。
あらゆる文字のために
カラー絵文字、右から左へのヘブライ語とアラビア語、オプションの FreeType、ラベルごとのフォント、収まるよう縮む文字、計測のキャッシュ。
テストハーネス
画面なしで、シミュレートした時計の上で:ゲームパッド、キーボード、タッチ、マウスを呼び出しで操作し、スクリーンショットを基準画像と比較。ファジングのターゲットも。
インスペクター、ホットリロード、プロファイラー
F12 または L3+R3 で、ツリー、ボックスモデル、テーマの参照をアプリの上に表示。XML とテーマは保存すると再読み込み。ベンチマークが性能の後退を見つけます。
密度と小さな画面
dpによるゆったり・コンパクト・高密度のサイズ、狭い画面向けのcompact:属性、小さな画面向けのプリセットを 1 回の呼び出しで。
並べて比較
どちらにもあるもの、その違い
左は現在の wiliwili ブランチの borealis、右は Aurore です。
見た目とレイアウト
| borealis wiliwili | Aurore | |
|---|---|---|
| 見た目 | 独自のもの。Switch に近い | デフォルトは Cadran。borealis の見た目にも 1 回の呼び出しで |
| 色 | ライトとダークのテーマ。コードで固定 | すべての色がテーマキー。アプリの実行中に切り替え |
| レイアウト | Yoga 2.0.0 | Yoga 3.2.1、標準の flexbox、gap、行をまたいでフォーカスが動く flexWrap |
| 角とグラデーション | すべての角に同じ半径 | 角ごとの半径、横方向のグラデーション、コードからのグラデーション |
| フォーカスのハイライト | 脈打つ枠 | ビューからビューへ滑らかに移動し、しばらくすると薄れることも |
| 画像 | UI スレッドで読み込み | バックグラウンドでのデコードも可能。大きすぎる画像はデコード前に拒否 |
テキストと入力
| borealis wiliwili | Aurore | |
|---|---|---|
| 翻訳 | 4 言語:英語、フランス語、ロシア語、簡体字中国語 | 15 言語。ライブラリ、Cadran、ヒント、アクセシビリティに |
| 言語の切り替え | 起動時に一度だけ読み込み | アプリの実行中に、loadTranslations() で |
| 文字列の検索 | 検索で例外を使用 | 例外なし。どのスレッドからでも安全 |
| Switch 以外のフォント | Switch 風のフォントを同梱 | フリーフォントの Inter と PromptFont。中国語・日本語・韓国語はシステムのフォント |
| キーボード | Enter、Escape、矢印キーくらい | コントローラーのすべてのボタンをキーに。割り当て変更も可能 |
| フォーカス | 非表示のボックスが受け取ることがあった | 非表示や破棄済みのビューは決して保持しない |
ビルドとプラットフォーム
| borealis wiliwili | Aurore | |
|---|---|---|
| 言語 | C++17 | C++20。RTTI と例外は有効 |
| CMake ターゲット | borealis | Aurore::aurore, Aurore::test |
| オプション | PLATFORM_*, USE_*, BRLS_* | AURORE_*、プリセット、再配置可能なインストール |
| ビルドシステム | CMake と xmake | CMake のみ |
| プラットフォーム | デスクトップ、Switch、PS Vita、PS4、Android、iOS、tvOS | 同じものに加えてブラウザー(Emscripten、WebGL 2) |
| 同梱ライブラリ | Yoga 2.0.0, SDL 2.28.5, tinyxml2 9.0.0, nlohmann/json 3.11, glad 0.1.27 | Yoga 3.2.1, SDL 2.32.10, tinyxml2 11.0.0, nlohmann/json 3.12.0, glad 2.0.8 |
| Switch のサウンド | libpulsar をリンク。ただしサウンドはオフ | libpulsar を削除 |
| リンクを開く | どんなアドレスでも、シェル経由で | http と https のみ、シェルなしで |
| ライセンス | Apache 2.0 | borealis のコードは Apache 2.0。Cadran は GPLv3 で、Aurore で作ったアプリも同様 |
修正
その途中で直したもの
borealis のほかのフォーク、PlayGuard のパッチ、そして Aurore 自身の作業から。
- 入力ブロックのカウンターがあふれて一周しなくなりました。
- 破棄されたビューはフォーカスとして忘れられ、失われたフォーカスは親フレームに届きます。
- ナビゲーションが非表示のフレームとスライダーを飛ばします。
- SDL のコントローラー:抜くと閉じ、再接続後はすべて読み直し、1 フレームより短い押下も失いません。
- 各リサイクルリストが自分の幅を確認。削除プールを空にする間にキューに入ったビューも保持されます。
- フォントのパーサーはフォント自身のデータの内側だけを読みます。
- ロガーが 1 行ごとにすぐ書き出します。
- 無効なボタンはクリックできなくなりました。
borealis ファミリーから取り込み
それらのコミットは作者と cherry picked from の行を保ちます。ほかはコミットにクレジットを記して書き直しました。
移行
アプリが変えること
ほとんどのアプリは、名前を変えればそのままビルドして動きます。ガイドにはすべての行と、その後画面で確認することを載せています。
- 名前:互換レイヤーはありません。
brlsのすべての名前に Aurore の名前があり、検索と置換で済みます。 - ビルド:C++20、
Aurore::auroreターゲット、AURORE_*オプション。 - ライセンス:Cadran はすべてのアプリにリンクされるため、Aurore で作ったアプリは GPLv3 です。
#include <borealis.hpp>#include <aurore.hpp>brls::Application::init();aurore::Application::init();BRLS_BIND(brls::Button, button, "go");AURORE_BIND(aurore::Button, button, "go");<brls:Box axis="column"><aurore:Box axis="column">textColor="@theme/brls/text"textColor="@theme/aurore/text"target_link_libraries(app borealis)target_link_libraries(app PRIVATE Aurore::aurore)cmake -DPLATFORM_DESKTOP=ON -DUSE_SDL2=ONcmake -DAURORE_PLATFORM=DESKTOP -DAURORE_WINDOW=SDL2BRLS_LANG=fr ./appAURORE_LANG=fr ./app
プロジェクト
ドキュメント、テスト、リリース
ドキュメント
このサイトに 18 のガイドと API リファレンス。borealis には README と wiki があります。
継続的インテグレーション
borealis のビルドに加えて:フォーマット、ASan と UBSan 下のデモ、テスト、ドキュメント。アクションはコミットに固定。
リリース
Conventional Commits と release-please、変更履歴、コード中の
AURORE_VERSION_AT_LEAST。コントリビュートとセキュリティ
コントリビュートのための
CONTRIBUTING.md、脆弱性を非公開で報告するためのSECURITY.md。テンプレート
リポジトリ内の
template/:デスクトップと Switch 向けの最小のアプリ。表示
サードパーティの表示をすべてのアプリに同梱。ツールがそれと同梱ライブラリのバージョンを確認します。
borealis からアプリを移しますか?
ガイドが一歩ずつ案内します:サブモジュール、ビルド、リソース、見た目、名前。