Un progetto Boréale · fork di borealis

Un'interfaccia in stile Switch per la tua app, su ogni schermo

Aurore è una libreria di interfaccia in C++ per controller, TV e touch screen. Già pronta somiglia ai menu della Nintendo Switch, e si può ridisegnare in qualsiasi altro stile.

Ancora nessuna versione: il sottomodulo segue main.

La demo di Aurore in Cadran, il suo aspetto predefinito: una barra di icone a sinistra, schede, chip e pulsanti, i tasti del controller in basso.

Dove funziona

  • Nintendo Switch
  • Android
  • iOS
  • Windows
  • macOS
  • Linux
  • PS4
  • PS Vita
  • Browser

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.

Creala in 15 minuti →

La schermata resources/xml/activity/hello.xml
<!-- 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>
La sua activity hello_activity.hpp
// 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");
};
Cosa mostra

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.

Provala nel browser

Funzioni

Tutto ciò che serve al menu di una console

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.

Il kit di Cadran →

Una cartella di tema: Inverno

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.

Ogni modifica e la sua API →

Aurore e borealis, fianco a fianco →

  • 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, flexWrap con 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

  1. Compila il tuo progetto in C++20, con RTTI ed eccezioni.
  2. Aggiungi Aurore come sottomodulo e copia la sua cartella resources nella radice del tuo progetto.
    git submodule add -b main https://github.com/JigSawFr/aurore.git library/aurore
    git submodule update --init --recursive
  3. Nel tuo CMakeLists.txt, includi commonOption.cmake e toolchain.cmake prima di project(), aggiungi la libreria dopo e collega Aurore::aurore.
  4. 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_demo

Fatte con borealis

App che la usano

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.