Um projeto Boréale · fork do borealis

Uma interface ao estilo da Switch para a tua app, em todos os ecrãs

Aurore é uma biblioteca de interface em C++ para comandos, televisores e ecrãs táteis. De origem, parece-se com os menus da Nintendo Switch, e pode ganhar qualquer outro estilo.

Ainda sem versão: o submódulo segue main.

A demo da Aurore no Cadran, o seu aspeto predefinido: uma barra de ícones à esquerda, cartões, etiquetas e botões, e os botões do comando em baixo.

Onde funciona

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

Um ecrã são poucas linhas de XML

Descreve o ecrã em XML, disposto com flexbox; liga as suas vistas em C++. O foco segue o botão direcional sozinho, o toque e o rato também funcionam, e cada cor segue o tema.

Cria-o em 15 minutos →

O ecrã 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>
A sua atividade 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");
};
O que mostra

Hello

Bem-vindo à Aurore!

Voltar

Demo ao vivo

A verdadeira demo, no teu navegador

A demo da Aurore compilada com Emscripten: o mesmo código que numa Switch, desenhado com WebGL 2. O teclado, o rato, um ecrã tátil ou o comando no ecrã; todos os temas e idiomas.

Experimenta no navegador

Funcionalidades

Tudo o que o menu de uma consola precisa

Cadran

Um aspeto próprio, sem uma linha de código

O Cadran, o aspeto do PlayGuard e do PlayShelf, é o predefinido da Aurore: uma barra de ícones, cartões, janelas modais, folhas de ações, ícones vetoriais, um tema claro e um escuro, idioma e tema trocados com a app em execução. aurore::Application::setCadran(false) mantém o do borealis.

O kit do Cadran →

Uma pasta de tema: Inverno

Capturas de ecrã

A demo, com vários aspetos

O que a Aurore acrescenta

O borealis, continuado

A Aurore segue o projeto original (xfangfang/borealis) e acrescenta correções e funcionalidades vindas de outros forks, e o que as suas apps precisam: cada uma opcional, exceto as correções.

Cada alteração e a sua API →

A Aurore e o borealis, lado a lado →

  • Temas: ficheiros e pastas de tema, paletas a partir de uma cor de destaque, predefinições, imagens, logótipos, ícones, decorações e partículas, tudo trocado em direto.
  • Estilos: estilos por estado (foco, premido, desativado, ao passar o ponteiro), transições, ligação de dados e etiquetas de acessibilidade.
  • Vistas: uma grelha e uma linha que reciclam, menus de contexto, botões de ícone, Markdown.
  • Disposição: Yoga 3, gap, flexWrap com o foco de uma linha para outra, um raio por canto, gradientes.
  • Texto: uma escala de letra para cada etiqueta, redução para caber, quebras de linha limpas.
  • Foco e indicações: o foco já não se perde em vistas ocultas ou destruídas; indicações estáveis no rodapé.
  • Plataformas: comandos religados com SDL, o navegador (Emscripten), a memória de instruções do deko3d na Switch.
  • Velocidade: sem nova disposição para um texto ou tamanho inalterados, atributos XML registados a pedido, texturas não usadas libertadas.

Usa-a

No teu projeto

  1. Compila o teu projeto como C++20, com RTTI e exceções.
  2. Adiciona a Aurore como submódulo e copia a pasta resources dela para a raiz do teu projeto.
    git submodule add -b main https://github.com/JigSawFr/aurore.git library/aurore
    git submodule update --init --recursive
  3. No teu CMakeLists.txt, inclui commonOption.cmake e toolchain.cmake antes de project(), adiciona a biblioteca depois e liga Aurore::aurore.
  4. Escolhe a plataforma com -DAURORE_PLATFORM=…: DESKTOP, SWITCH, PSV, PS4, ANDROID, IOS.

Começas do zero? template/ é uma app mínima que compila para o computador e para a Switch.

Vens do borealis? Troca o submódulo e depois muda o nome de brls::, <borealis.hpp> e BRLS_ para os da Aurore: um procurar e substituir. →

Compilar a demo

Em Linux, macOS ou Windows; os comandos das outras plataformas são os da 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

Feito com o borealis

Apps que correm nela

Documentação

Documentação

Licença

O código do borealis está sob a licença Apache 2.0; o Cadran, o aspeto predefinido da Aurore, é GPLv3, tal como uma app criada com ele. Software livre, mantido por JigSawFr.