Een Boréale-project · fork van borealis

Een interface zoals op de Switch voor je app, op elk scherm

Aurore is een C++-interfacebibliotheek voor controllers, tv's en touchscreens. Kant-en-klaar lijkt ze op de menu's van de Nintendo Switch, en je kunt haar in elke andere stijl gieten.

Nog geen release: de submodule volgt main.

De demo van Aurore in Cadran, de standaardlook: een balk met pictogrammen links, kaarten, chips en knoppen, onderaan de knoppen van de controller.

Waar het draait

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

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.

Bouw het in 15 minuten →

Het scherm 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>
Zijn 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");
};
Wat het toont

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.

Probeer het in je browser

Functies

Alles wat een consolemenu 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.

De kit van Cadran →

Een themamap: Winter

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.

Elke wijziging en de API ervan →

Aurore en borealis naast elkaar →

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

  1. Compileer je project als C++20, met RTTI en exceptions.
  2. Voeg Aurore toe als submodule en kopieer de map resources naar de hoofdmap van je project.
    git submodule add -b main https://github.com/JigSawFr/aurore.git library/aurore
    git submodule update --init --recursive
  3. Neem in je CMakeLists.txt commonOption.cmake en toolchain.cmake op vóór project(), voeg de bibliotheek daarna toe en link Aurore::aurore.
  4. 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_demo

Gemaakt met borealis

Apps die erop draaien

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.