Aurore 與 borealis

borealis 能做的一切,以及它所欠缺的

Aurore 是 xfangfang/borealis(其 wiliwili 分支)改名後為 PlayGuard 和 PlayShelf 繼續發展的版本。borealis 擁有的一切都保留:檢視、平台、驅動程式。以下是新增的內容和改變之處。

對照對象:Aurore 的 main,以及 Aurore 起步處 borealis wiliwili 的最新提交。Aurore 尚未發布版本。

Aurore 的由來
  1. natinusala/borealis最初的程式庫
  2. xfangfang/borealis · wiliwili為 wiliwili 建立的分支,Aurore 由此起步
  3. 來自其他分支的 45 個提交連同作者一起引進
  4. 來自 PlayGuard 的 21 個提交PlayGuard 自己的 borealis 修補
  5. JigSawFr/Aurore改名並繼續發展

一覽

Aurore 新增

borealis 沒有的

Cadran 預設開啟,一次呼叫即可關閉;其餘功能在 App 需要時隨時可用。

並列對照

兩者都有的,以及差別所在

左邊是目前 wiliwili 分支的 borealis,右邊是 Aurore。

外觀與版面

borealis wiliwiliAurore
外觀自有外觀,接近 Switch預設 Cadran;一次呼叫即可換回 borealis 的外觀
顏色淺色和深色兩套主題,寫死在程式碼中每種顏色都是主題鍵,可在 App 執行時切換
版面Yoga 2.0.0Yoga 3.2.1,標準 flexbox,gap,焦點可跨行移動的 flexWrap
圓角與漸層所有角使用同一半徑每個角各自的半徑,水平漸層,從程式碼建立漸層
焦點醒目提示閃動的邊框在檢視間平滑移動,一段時間後可淡出
圖片在介面執行緒中載入可在背景解碼;過大的圖片在解碼前即被拒絕

文字與輸入

borealis wiliwiliAurore
翻譯4 種語言:英文、法文、俄文、簡體中文15 種語言,涵蓋程式庫、Cadran、提示和無障礙
切換語言啟動時載入一次App 執行時,用 loadTranslations()
文字查詢查詢時使用例外不使用例外,可從任何執行緒安全呼叫
Switch 以外的字型附帶 Switch 風格字型自由字型 Inter 和 PromptFont;中文、日文和韓文使用系統字型
鍵盤Enter、Esc、方向鍵,其他不多控制器的每個按鈕都對應一個按鍵,可重新對應
焦點隱藏的方塊也可能取得焦點隱藏或已銷毀的檢視絕不持有焦點

建置與平台

borealis wiliwiliAurore
語言C++17C++20,啟用 RTTI 和例外處理
CMake 目標borealisAurore::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.27Yoga 3.2.1, SDL 2.32.10, tinyxml2 11.0.0, nlohmann/json 3.12.0, glad 2.0.8
Switch 音效連結 libpulsar,但音效已關閉已移除 libpulsar
開啟連結任何網址,透過 shell僅 http 和 https,不透過 shell
授權Apache 2.0borealis 的程式碼為 Apache 2.0;Cadran 為 GPLv3,因此用 Aurore 建置的 App 也是

修正

一路修好的問題

來自 borealis 的其他分支、PlayGuard 的修補,以及 Aurore 本身的工作。

  • 輸入封鎖計數器不再溢位繞回。
  • 已銷毀的檢視不再被當作焦點;遺失的焦點會傳到父框架。
  • 導覽會略過隱藏的框架和滑桿。
  • SDL 下的控制器:拔除即關閉,重新連線後全部重新讀取,短於一格畫面的按壓也不會遺失。
  • 每個重複利用清單檢查自身寬度;清空刪除池期間排入佇列的檢視會被保留。
  • 字型剖析器只在字型本身的資料範圍內讀取。
  • 記錄器每一行都立即寫出。
  • 停用的按鈕不能再被點擊。

取自 borealis 大家族

這些提交保留了作者和 cherry picked from 行;其他的則重新撰寫,並在提交中註明出處。

轉換

App 需要改什麼

大多數 App 改名之後即可原樣建置執行。指南列出每一行,以及之後要在畫面上檢查的地方。

  • 名稱:沒有相容層,每個 brls 名稱都有對應的 Aurore 名稱;搜尋取代就好。
  • 建置:C++20、Aurore::aurore 目標、AURORE_* 選項。
  • 授權:Cadran 會連結進每個 App,因此用 Aurore 建置的 App 為 GPLv3。

從 borealis 轉換過來 →

my-app:borealis → Aurore
#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

專案

有文件、有測試、有發布

要把 App 從 borealis 轉換過來?

指南一步步帶你完成:子模組、建置、資源、外觀、名稱。