Aurore und borealis

Alles, was borealis kann, und was ihm fehlte

Aurore ist xfangfang/borealis (sein Branch wiliwili), umbenannt und weitergeführt für PlayGuard und PlayShelf. Alles, was borealis hat, bleibt: seine Views, seine Plattformen, seine Treiber. Hier steht, was dazukommt und was sich geändert hat.

Verglichen: main von Aurore und die Spitze von wiliwili bei borealis, wo Aurore beginnt. Noch kein Release von Aurore.

Woher Aurore kommt
  1. natinusala/borealisDie ursprüngliche Bibliothek
  2. xfangfang/borealis · wiliwiliSein Branch für wiliwili, wo Aurore beginnt
  3. 45 Commits aus anderen ForksMit ihren Autoren übernommen
  4. 21 Commits von PlayGuardSeine eigenen Patches für borealis
  5. JigSawFr/AuroreUmbenannt und weitergeführt

Auf einen Blick

Neu in Aurore

Was borealis nicht hat

Cadran ist standardmäßig an, ein Aufruf schaltet es ab; der Rest ist da, wenn eine App ihn will.

Im Vergleich

Was beide haben, und wie es sich unterscheidet

Links borealis, wie sein Branch wiliwili steht, rechts Aurore.

Look und Layout

borealis wiliwiliAurore
LookEin eigener, nah an dem der SwitchStandardmäßig Cadran; der Look von borealis einen Aufruf entfernt
FarbenEin helles und ein dunkles Theme, im Code festgelegtJede Farbe ein Theme-Schlüssel, gewechselt während die App läuft
LayoutYoga 2.0.0Yoga 3.2.1, Standard-Flexbox, gap, flexWrap mit Fokus über die Zeilen
Ecken und VerläufeEin Radius für alle EckenEin Radius pro Ecke, waagerechte Verläufe, Verläufe aus dem Code
FokusmarkierungEin pulsierender RahmenGleitet von View zu View, kann nach einer Weile verblassen
BilderIm Thread der Oberfläche geladenIm Hintergrund dekodierbar; zu große Bilder vor dem Dekodieren abgelehnt

Text und Eingabe

borealis wiliwiliAurore
Übersetzungen4 Sprachen: Englisch, Französisch, Russisch, vereinfachtes Chinesisch15 Sprachen, für die Bibliothek, Cadran, die Hinweise und die Barrierefreiheit
SprachwechselEinmal geladen, beim StartWährend die App läuft, mit loadTranslations()
AbfragenExceptions bei der AbfrageOhne Exceptions, sicher aus jedem Thread
Schriften außerhalb der SwitchSchriften im Stil der Switch mitgeliefertInter und PromptFont, freie Schriften; Chinesisch, Japanisch und Koreanisch vom System
TastaturEnter, Escape, die Pfeile und wenig mehrJede Controller-Taste auf einer Taste, neu belegbar
FokusEine versteckte Box konnte ihn nehmenVersteckte und zerstörte Views halten ihn nie

Build und Plattformen

borealis wiliwiliAurore
SpracheC++17C++20, RTTI und Exceptions an
CMake-TargetborealisAurore::aurore, Aurore::test
OptionenPLATFORM_*, USE_*, BRLS_*AURORE_*, Presets, eine verschiebbare Installation
Build-SystemeCMake und xmakeNur CMake
PlattformenDesktop, Switch, PS Vita, PS4, Android, iOS, tvOSDieselben, dazu der Browser (Emscripten, WebGL 2)
Mitgelieferte BibliothekenYoga 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
Töne der Switchlibpulsar gelinkt, seine Töne auslibpulsar entfernt
Links öffnenJede Adresse, über eine ShellNur http und https, ohne Shell
LizenzApache 2.0Der Code von borealis unter Apache 2.0; Cadran unter GPLv3, und damit eine mit Aurore gebaute App

Korrekturen

Unterwegs behoben

Aus anderen Forks von borealis, aus den Patches von PlayGuard und aus der eigenen Arbeit an Aurore.

  • Der Zähler der Eingabesperre läuft nicht mehr über.
  • Eine zerstörte View wird als Fokus vergessen; ein verlorener Fokus erreicht die Eltern-Frames.
  • Die Navigation überspringt versteckte Frames und Schieberegler.
  • Controller unter SDL: beim Abstecken geschlossen, nach dem Wiederverbinden alle neu gelesen, Drücke kürzer als ein Frame behalten.
  • Jede recycelnde Liste prüft ihre eigene Breite; Views, die während des Leerens des Löschpools eingereiht werden, bleiben erhalten.
  • Die Schrift-Parser lesen nur innerhalb der Daten der Schrift.
  • Der Logger schreibt jede Zeile sofort aus.
  • Ein deaktivierter Button lässt sich nicht mehr anklicken.

Aus der borealis-Familie übernommen

Ihre Commits behalten ihren Autor und ihre Zeile cherry picked from; andere sind neu geschrieben, mit Nennung im Commit.

Der Umstieg

Was eine App ändert

Die meisten Apps bauen und laufen nach dem Umbenennen unverändert. Die Anleitung nennt jede Zeile und was danach auf dem Bildschirm zu prüfen ist.

  • Die Namen: keine Kompatibilitätsschicht, jeder brls-Name hat einen Aurore-Namen; ein Suchen und Ersetzen genügt.
  • Der Build: C++20, das Target Aurore::aurore, die Optionen AURORE_*.
  • Die Lizenz: Cadran wird in jede App gelinkt, also steht eine mit Aurore gebaute App unter GPLv3.

Umstieg von borealis →

meine-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

Das Projekt

Dokumentiert, getestet, veröffentlicht

Eine App von borealis umstellen?

Die Anleitung geht Schritt für Schritt vor: das Submodul, der Build, die Ressourcen, der Look, die Namen.