Aurore et borealis

Tout ce que fait borealis, et ce qui lui manquait

Aurore, c'est xfangfang/borealis (sa branche wiliwili) renommé et poursuivi pour PlayGuard et PlayShelf. Tout ce qu'a borealis reste : ses vues, ses plateformes, ses pilotes. Voici ce qui s'y ajoute, et ce qui a changé.

Comparés : le main d'Aurore et la pointe de wiliwili chez borealis, d'où part Aurore. Pas encore de version d'Aurore.

D'où vient Aurore
  1. natinusala/borealisLa bibliothèque d'origine
  2. xfangfang/borealis · wiliwiliSa branche pour wiliwili, d'où part Aurore
  3. 45 commits d'autres forksRepris avec leurs auteurs
  4. 21 commits de PlayGuardSes propres correctifs de borealis
  5. JigSawFr/AuroreRenommé et poursuivi

En un coup d'œil

Nouveau dans Aurore

Ce que borealis n'a pas

Cadran est actif par défaut, et un appel le coupe; le reste attend qu'une app le veuille.

Côte à côte

Ce que les deux ont, et ce qui diffère

borealis à gauche, tel qu'est sa branche wiliwili, Aurore à droite.

Allure et mise en page

borealis wiliwiliAurore
AllureLa sienne, proche de celle de la SwitchCadran par défaut; l'allure de borealis à un appel
CouleursUn thème clair et un sombre, fixés dans le codeChaque couleur est une clé de thème, changée pendant que l'app tourne
Mise en pageYoga 2.0.0Yoga 3.2.1, flexbox standard, gap, flexWrap avec le focus d'une ligne à l'autre
Coins et dégradésUn seul rayon pour tous les coinsUn rayon par coin, des dégradés horizontaux, des dégradés depuis le code
Surlignage du focusUne bordure qui pulseGlisse d'une vue à l'autre, peut s'estomper au bout d'un moment
ImagesChargées sur le fil de l'interfaceDécodables en arrière-plan; les images trop grandes refusées avant décodage

Texte et saisie

borealis wiliwiliAurore
Traductions4 langues : anglais, français, russe, chinois simplifié15 langues, pour la bibliothèque, Cadran, les aides et l'accessibilité
Changer de langueChargée une fois, au démarragePendant que l'app tourne, avec loadTranslations()
RecherchesDes exceptions à la rechercheSans exceptions, sûres depuis n'importe quel fil
Polices hors de la SwitchDes polices façon Switch fourniesInter et PromptFont, des polices libres; chinois, japonais et coréen par le système
ClavierEntrée, Échap, les flèches et peu d'autresChaque bouton de la manette sur une touche, réaffectable
FocusUne boîte cachée pouvait le prendreLes vues cachées ou détruites ne le gardent jamais

Compilation et plateformes

borealis wiliwiliAurore
LangageC++17C++20, RTTI et exceptions actives
Cible CMakeborealisAurore::aurore, Aurore::test
OptionsPLATFORM_*, USE_*, BRLS_*AURORE_*, des préréglages, une installation relocalisable
Systèmes de compilationCMake et xmakeCMake seul
PlateformesOrdinateur, Switch, PS Vita, PS4, Android, iOS, tvOSLes mêmes, et le navigateur (Emscripten, WebGL 2)
Bibliothèques fourniesYoga 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
Sons de la Switchlibpulsar liée, ses sons coupéslibpulsar retirée
Ouvrir un lienN'importe quelle adresse, par un shellhttp et https seulement, sans shell
LicenceApache 2.0Le code de borealis en Apache 2.0; Cadran en GPLv3, et donc une app construite avec Aurore

Corrections

Corrigé en chemin

Venues d'autres forks de borealis, des correctifs de PlayGuard, et du travail d'Aurore lui-même.

  • Le compteur de blocage des entrées ne fait plus le tour.
  • Une vue détruite est oubliée comme focus; un focus perdu remonte aux cadres parents.
  • La navigation saute les cadres et curseurs cachés.
  • Manettes sous SDL : fermées au débranchement, toutes relues après une reconnexion, les appuis plus courts qu'une image gardés.
  • Chaque liste recyclée vérifie sa propre largeur; les vues mises en file pendant que la réserve de suppression se vide sont gardées.
  • Les lecteurs de polices ne lisent qu'à l'intérieur des données de la police.
  • Le journal écrit chaque ligne aussitôt.
  • Un bouton désactivé ne se clique plus.

Repris de la famille borealis

Leurs commits gardent leur auteur et leur ligne cherry picked from; d'autres sont réécrits, avec le crédit dans le commit.

Passer à Aurore

Ce qu'une app change

La plupart des apps se compilent et tournent sans changement une fois renommées. Le guide donne chaque ligne, et ce qu'il faut regarder à l'écran ensuite.

  • Les noms : pas de couche de compatibilité, chaque nom brls a son nom Aurore; un chercher-remplacer suffit.
  • La compilation : C++20, la cible Aurore::aurore, les options AURORE_*.
  • La licence : Cadran est lié à chaque app, donc une app construite avec Aurore est en GPLv3.

Migrer depuis borealis →

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

Le projet

Documenté, testé, publié

Une app à faire passer de borealis?

Le guide la prend pas à pas : le sous-module, la compilation, les ressources, l'allure, les noms.