Een scherm is een paar regels XML
Beschrijf het scherm in XML, opgemaakt met flexbox; koppel de views in C++. De focus volgt vanzelf de richtingstoetsen, aanraken en de muis werken ook, en elke kleur volgt het thema.
<!-- 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
Welkom bij Aurore!
Terug
Live demo
De echte demo, in je browser
De demo van Aurore, gecompileerd met Emscripten: dezelfde code als op een Switch, getekend met WebGL 2. Het toetsenbord, de muis, een touchscreen of de controller op het scherm; alle thema's en talen.
Functies
Alles wat een consolemenu nodig heeft
Gemaakt voor controllers
De focus beweegt vanzelf met de richtingstoetsen; aanraken en de muis werken ook, en de voettekst toont de knoppen die iets doen.
Flexbox-opmaak
Elke view wordt door Yoga geplaatst en in XML beschreven, code alleen waar het ertoe doet.
gap,flexWrap, een straal per hoek.Vectorafbeeldingen
Hardwareversneld door nanovg: OpenGL, Direct3D 11, deko3d op de Switch, GXM op de Vita, geschaald voor een tv.
Kant-en-klare componenten
Tabbladen, lijsten en rasters die hun cellen hergebruiken, instellingscellen, dialoogvensters, actiemenu's, meldingen, schuifregelaars, Markdown, allemaal opgemaakt door een thema.
Thema's
Elke kleur is een themasleutel. Themabestanden en -mappen brengen paletten, afbeeldingen, logo's, pictogrammen en decoraties mee, gewisseld terwijl de app draait, met gecontroleerd contrast.
15 talen
Eén JSON-catalogus per taal, gewisseld terwijl de app draait; kleuremoji en tekst van rechts naar links als optie.
Hulpmiddelen
Een testomgeving met gesimuleerde tijd en vergelijking van schermafbeeldingen, een inspector (F12), hot reload van XML en thema's, een profiler, een app-sjabloon.
De gereedschapskist
Logger, animaties, timers, achtergrondtaken, opslag: wat een app rond zijn schermen nodig heeft.
Cadran
Een eigen look, zonder één regel code
Cadran, de look van PlayGuard en PlayShelf, is de standaard van Aurore: een pictogrammenbalk, kaarten, modale vensters, actiemenu's, vectorpictogrammen, een licht en een donker thema, taal en thema gewisseld terwijl de app draait. aurore::Application::setCadran(false) houdt die van borealis.
Schermafbeeldingen
De demo, in een paar looks












Wat Aurore toevoegt
borealis, voortgezet
Aurore volgt het origineel (xfangfang/borealis) en voegt correcties en functies uit andere forks toe, en wat de apps ervan nodig hebben: elk ervan in te schakelen, behalve als het een correctie is.
- Thema's: themabestanden en -mappen, paletten uit één accentkleur, voorinstellingen, afbeeldingen, logo's, pictogrammen, decoraties en deeltjes, allemaal live gewisseld.
- Stijlen: stijlen per toestand (focus, ingedrukt, uitgeschakeld, hover), overgangen, databinding en toegankelijkheidslabels.
- Views: een raster en een rij die cellen hergebruiken, contextmenu's, pictogramknoppen, Markdown.
- Opmaak: Yoga 3,
gap,flexWrapmet focus over de regels heen, een straal per hoek, kleurverlopen. - Tekst: een lettergrootteschaal voor elk label, verkleinen tot het past, nette regeleinden.
- Focus en hints: geen focus meer die verloren gaat in verborgen of vernietigde views; stabiele hints in de voettekst.
- Platforms: controllers opnieuw verbonden onder SDL, de browser (Emscripten), het opdrachtgeheugen van deko3d op de Switch.
- Snelheid: geen nieuwe opmaak voor ongewijzigde tekst of grootte, XML-attributen op aanvraag geregistreerd, ongebruikte texturen vrijgegeven.
Gebruik het
In je project
- Compileer je project als C++20, met RTTI en exceptions.
- Voeg Aurore toe als submodule en kopieer de map
resourcesnaar de hoofdmap van je project.git submodule add -b main https://github.com/JigSawFr/aurore.git library/aurore git submodule update --init --recursive - Neem in je
CMakeLists.txtcommonOption.cmakeentoolchain.cmakeop vóórproject(), voeg de bibliotheek daarna toe en linkAurore::aurore. - Kies het platform met
-DAURORE_PLATFORM=…:DESKTOP,SWITCH,PSV,PS4,ANDROID,IOS.
Begin je vanaf nul? template/ is een minimale app die voor de desktop en de Switch compileert.
Kom je van borealis? Vervang de submodule en hernoem dan brls::, <borealis.hpp> en BRLS_ naar de namen van Aurore: een kwestie van zoeken en vervangen. →
De demo compileren
Op Linux, macOS of Windows; de opdrachten voor de andere platforms zijn die van de 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_demoGemaakt met borealis
Apps die erop draaien
- PlayGuardOuderlijk toezicht voor de Nintendo Switch, op de console
- PlayShelfEen gamebibliotheek, catalogus en downloads voor de Switch
- Moonlight-SwitchMoonlight-gamestreaming voor de Switch
- wiliwilibilibili-client voor pc, PS4, PS Vita, Xbox en de Switch
- switchfinJellyfin-client voor pc, PS4 en de Switch
- SimpleModDownloaderMods van GameBanana, gedownload op de Switch
Documentatie
Documentatie
Licentie
De code van borealis valt onder de Apache 2.0-licentie; Cadran, de standaardlook van Aurore, is GPLv3, en een app die ermee gebouwd is ook. Vrije software, onderhouden door JigSawFr.