Ein Boréale-Projekt · Fork von borealis

Eine Oberfläche wie auf der Switch für deine App, auf jedem Bildschirm

Aurore ist eine C++-Oberflächenbibliothek für Controller, Fernseher und Touchscreens. Ab Werk sieht sie aus wie die Menüs der Nintendo Switch, und sie lässt sich in jeden anderen Stil umgestalten.

Noch keine Version: Das Submodul folgt main.

Die Demo von Aurore in Cadran, seinem Standard-Look: links eine Leiste mit Symbolen, Karten, Chips und Schaltflächen, unten die Tasten des Controllers.

Wo sie läuft

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

Ein Bildschirm sind ein paar Zeilen XML

Beschreibe den Bildschirm in XML, angeordnet mit Flexbox; verknüpfe seine Views in C++. Der Fokus folgt dem Steuerkreuz von selbst, Touch und Maus funktionieren auch, und jede Farbe folgt dem Theme.

In 15 Minuten nachbauen →

Der Bildschirm 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>
Seine 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");
};
Was er zeigt

Hello

Willkommen bei Aurore!

Zurück

Live-Demo

Die echte Demo, in deinem Browser

Die Demo von Aurore, mit Emscripten kompiliert: derselbe Code wie auf einer Switch, mit WebGL 2 gezeichnet. Tastatur, Maus, Touchscreen oder das Steuerfeld auf dem Bildschirm; alle Themes und Sprachen.

Im Browser ausprobieren

Funktionen

Alles, was ein Konsolenmenü braucht

Cadran

Ein eigener Look, ohne eine Zeile Code

Cadran, der Look von PlayGuard und PlayShelf, ist der Standard von Aurore: eine Symbolleiste, Karten, Modals, Aktionsblätter, Vektorsymbole, ein helles und ein dunkles Theme, Sprache und Theme gewechselt während die App läuft. aurore::Application::setCadran(false) behält den von borealis.

Das Kit von Cadran →

Ein Theme-Ordner: Winter

Screenshots

Die Demo in verschiedenen Looks

Was Aurore hinzufügt

borealis, weitergeführt

Aurore folgt dem Upstream (xfangfang/borealis) und ergänzt Korrekturen und Funktionen aus anderen Forks sowie das, was seine Apps brauchen: jede davon optional, außer sie ist eine Korrektur.

Jede Änderung und ihre API →

Aurore und borealis im Vergleich →

  • Themes: Theme-Dateien und -Ordner, Paletten aus einer Akzentfarbe, Voreinstellungen, Bilder, Logos, Symbole, Dekorationen und Partikel, alles live gewechselt.
  • Stile: Stile pro Zustand (Fokus, gedrückt, deaktiviert, Hover), Übergänge, Datenbindung und Bedienungshilfen-Beschriftungen.
  • Views: ein recycelndes Raster und eine Reihe, Kontextmenüs, Symbolschaltflächen, Markdown.
  • Layout: Yoga 3, gap, flexWrap mit Fokus über die Zeilen hinweg, ein Radius pro Ecke, Verläufe.
  • Text: eine Schriftskalierung für jede Beschriftung, Verkleinern bis es passt, saubere Zeilenumbrüche.
  • Fokus und Hinweise: kein Fokus mehr, der in versteckten oder zerstörten Views verloren geht; stabile Hinweise in der Fußzeile.
  • Plattformen: unter SDL wieder verbundene Controller, der Browser (Emscripten), der Befehlsspeicher von deko3d auf der Switch.
  • Tempo: kein neues Layout für unveränderten Text oder unveränderte Größe, XML-Attribute bei Bedarf registriert, ungenutzte Texturen freigegeben.

Einsetzen

In deinem Projekt

  1. Kompiliere dein Projekt als C++20, mit RTTI und Exceptions.
  2. Füge Aurore als Submodul hinzu und kopiere seinen Ordner resources in das Stammverzeichnis deines Projekts.
    git submodule add -b main https://github.com/JigSawFr/aurore.git library/aurore
    git submodule update --init --recursive
  3. Binde in deiner CMakeLists.txt commonOption.cmake und toolchain.cmake vor project() ein, füge die Bibliothek danach hinzu und linke Aurore::aurore.
  4. Wähle die Plattform mit -DAURORE_PLATFORM=…: DESKTOP, SWITCH, PSV, PS4, ANDROID, IOS.

Du fängst bei null an? template/ ist eine minimale App, die für den Desktop und die Switch kompiliert.

Du kommst von borealis? Tausche das Submodul aus und benenne dann brls::, <borealis.hpp> und BRLS_ in die Namen von Aurore um: ein Suchen und Ersetzen. →

Die Demo kompilieren

Unter Linux, macOS oder Windows; die Befehle der anderen Plattformen sind die der 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

Mit borealis gemacht

Apps, die darauf laufen

Dokumentation

Dokumentation

Lizenz

Der Code von borealis steht unter der Apache-2.0-Lizenz; Cadran, der Standard-Look von Aurore, steht unter der GPLv3, und damit auch eine App, die damit gebaut wird. Freie Software, gepflegt von JigSawFr.