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.
<!-- 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
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.
Funktionen
Alles, was ein Konsolenmenü braucht
Für Controller gemacht
Der Fokus wandert von selbst mit dem Steuerkreuz; Touch und Maus funktionieren auch, und die Fußzeile zeigt die Tasten, die gerade etwas tun.
Flexbox-Layout
Jede View wird von Yoga angeordnet und in XML beschrieben, Code nur dort, wo er zählt.
gap,flexWrap, ein Radius pro Ecke.Vektorgrafik
Hardwarebeschleunigt durch nanovg: OpenGL, Direct3D 11, deko3d auf der Switch, GXM auf der Vita, skaliert für den Fernseher.
Fertige Komponenten
Tabs, recycelnde Listen und Raster, Einstellungszellen, Dialoge, Aktionsblätter, Toasts, Schieberegler, Markdown, alle von einem Theme umgestaltet.
Themes
Jede Farbe ist ein Theme-Schlüssel. Theme-Dateien und -Ordner bringen Paletten, Bilder, Logos, Symbole und Dekorationen mit, gewechselt während die App läuft, mit geprüftem Kontrast.
15 Sprachen
Ein JSON-Katalog pro Sprache, gewechselt während die App läuft; Farb-Emoji und Rechts-nach-links-Text als Option.
Werkzeuge
Ein Testgerüst mit simulierter Zeit und Screenshot-Vergleich, ein Inspektor (F12), Hot Reload von XML und Themes, ein Profiler, eine App-Vorlage.
Der Werkzeugkasten
Logger, Animationen, Timer, Hintergrundaufgaben, Speicher: was eine App rund um ihre Bildschirme 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.
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.
- 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,flexWrapmit 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
- Kompiliere dein Projekt als C++20, mit RTTI und Exceptions.
- Füge Aurore als Submodul hinzu und kopiere seinen Ordner
resourcesin das Stammverzeichnis deines Projekts.git submodule add -b main https://github.com/JigSawFr/aurore.git library/aurore git submodule update --init --recursive - Binde in deiner
CMakeLists.txtcommonOption.cmakeundtoolchain.cmakevorproject()ein, füge die Bibliothek danach hinzu und linkeAurore::aurore. - 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_demoMit borealis gemacht
Apps, die darauf laufen
- PlayGuardJugendschutz für die Nintendo Switch, direkt auf der Konsole
- PlayShelfEine Spielebibliothek mit Katalog und Downloads für die Switch
- Moonlight-SwitchMoonlight-Game-Streaming für die Switch
- wiliwilibilibili-Client für PC, PS4, PS Vita, Xbox und die Switch
- switchfinJellyfin-Client für PC, PS4 und die Switch
- SimpleModDownloaderMods von GameBanana, auf die Switch heruntergeladen
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.