Una schermata sono poche righe di XML
Descrivi la schermata in XML, impaginata con flexbox; collega le sue viste in C++. Il focus segue la croce direzionale da solo, anche touch e mouse funzionano, e ogni colore segue il tema.
<!-- 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
#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
Benvenuto in Aurore!
Indietro
Demo dal vivo
La vera demo, nel tuo browser
La demo di Aurore compilata con Emscripten: lo stesso codice di una Switch, disegnato con WebGL 2. Tastiera, mouse, touch screen o il controller sullo schermo; tutti i temi e tutte le lingue.
Funzioni
Tutto ciò che serve al menu di una console
Fatta per i controller
Il focus si sposta da solo con la croce direzionale; anche touch e mouse funzionano, e il piè di pagina mostra i tasti che fanno qualcosa.
Layout flexbox
Ogni vista è disposta da Yoga, descritta in XML, con il codice solo dove serve.
gap,flexWrap, un raggio per angolo.Grafica vettoriale
Accelerata via hardware da nanovg: OpenGL, Direct3D 11, deko3d sulla Switch, GXM sulla Vita, in scala per la TV.
Componenti pronti
Schede, liste e griglie che riciclano le celle, celle di impostazioni, finestre di dialogo, menu di azioni, notifiche, cursori, Markdown, tutti restilizzati da un tema.
Temi
Ogni colore è una chiave del tema. File e cartelle di tema portano palette, immagini, loghi, icone e decorazioni, cambiati mentre l'app è in esecuzione, con il contrasto verificato.
15 lingue
Un catalogo JSON per lingua, cambiata mentre l'app è in esecuzione; emoji a colori e testo da destra a sinistra come opzioni.
Strumenti
Un banco di test con tempo simulato e confronto degli screenshot, un inspector (F12), il ricaricamento a caldo di XML e temi, un profiler, un modello di app.
La cassetta degli attrezzi
Logger, animazioni, timer, attività in background, archiviazione: ciò che serve a un'app intorno alle sue schermate.
Cadran
Un aspetto tutto suo, senza una riga di codice
Cadran, l'aspetto di PlayGuard e PlayShelf, è quello predefinito di Aurore: una barra di icone, schede, finestre modali, menu di azioni, icone vettoriali, un tema chiaro e uno scuro, lingua e tema cambiati mentre l'app è in esecuzione. aurore::Application::setCadran(false) mantiene quello di borealis.
Schermate
La demo, in diversi aspetti












Cosa aggiunge Aurore
borealis, portata avanti
Aurore segue il progetto originale (xfangfang/borealis) e aggiunge correzioni e funzioni prese da altri fork, e ciò che serve alle sue app: ognuna da attivare, tranne le correzioni.
- Temi: file e cartelle di tema, palette ricavate da un colore d'accento, preimpostazioni, immagini, loghi, icone, decorazioni e particelle, tutto cambiato al volo.
- Stili: stili per stato (focus, premuto, disattivato, passaggio del mouse), transizioni, data binding ed etichette di accessibilità.
- Viste: una griglia e una riga che riciclano, menu contestuali, pulsanti con icona, Markdown.
- Layout: Yoga 3,
gap,flexWrapcon il focus da una riga all'altra, un raggio per angolo, sfumature. - Testo: una scala del carattere per ogni etichetta, riduzione per far stare il testo, a capo puliti.
- Focus e suggerimenti: niente più focus perso in viste nascoste o distrutte; suggerimenti stabili nel piè di pagina.
- Piattaforme: controller ricollegati con SDL, il browser (Emscripten), la memoria dei comandi di deko3d sulla Switch.
- Velocità: nessun nuovo layout per un testo o una dimensione invariati, attributi XML registrati su richiesta, texture inutilizzate liberate.
Usala
Nel tuo progetto
- Compila il tuo progetto in C++20, con RTTI ed eccezioni.
- Aggiungi Aurore come sottomodulo e copia la sua cartella
resourcesnella radice del tuo progetto.git submodule add -b main https://github.com/JigSawFr/aurore.git library/aurore git submodule update --init --recursive - Nel tuo
CMakeLists.txt, includicommonOption.cmakeetoolchain.cmakeprima diproject(), aggiungi la libreria dopo e collegaAurore::aurore. - Scegli la piattaforma con
-DAURORE_PLATFORM=…:DESKTOP,SWITCH,PSV,PS4,ANDROID,IOS.
Parti da zero? template/ è un'app minima che si compila per il computer e la Switch.
Arrivi da borealis? Cambia il sottomodulo, poi rinomina brls::, <borealis.hpp> e BRLS_ con i nomi di Aurore: un cerca e sostituisci. →
Compila la demo
Su Linux, macOS o Windows; i comandi delle altre piattaforme sono quelli della 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_demoFatte con borealis
App che la usano
- PlayGuardFiltro famiglia per Nintendo Switch, sulla console
- PlayShelfUna libreria di giochi, catalogo e download per la Switch
- Moonlight-SwitchLo streaming di giochi Moonlight per la Switch
- wiliwiliClient bilibili per PC, PS4, PS Vita, Xbox e la Switch
- switchfinClient Jellyfin per PC, PS4 e la Switch
- SimpleModDownloaderLe mod di GameBanana, scaricate sulla Switch
Documentazione
Documentazione
Licenza
Il codice di borealis è sotto licenza Apache 2.0; Cadran, l'aspetto predefinito di Aurore, è GPLv3, e così un'app creata con esso. Software libero, mantenuto da JigSawFr.