Um projeto Boréale · fork do borealis

Uma interface no estilo do Switch para o seu app, em todas as telas

Aurore é uma biblioteca de interface em C++ para controles, TVs e telas sensíveis ao toque. De fábrica, ela se parece com os menus do Nintendo Switch, e pode ganhar qualquer outro visual.

Ainda não há versão: o submódulo segue main.

A demo da Aurore no Cadran, seu visual padrão: uma barra de ícones à esquerda, cartões, chips e botões, e os botões do controle embaixo.

Onde roda

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

Uma tela são poucas linhas de XML

Descreva a tela em XML, organizada com flexbox; vincule suas views em C++. O foco segue o direcional sozinho, o toque e o mouse também funcionam, e cada cor segue o tema.

Crie em 15 minutos →

A tela 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>
Sua 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");
};
O que ela mostra

Hello

Boas-vindas à Aurore!

Voltar

Demo ao vivo

A demo de verdade, no seu navegador

A demo da Aurore compilada com Emscripten: o mesmo código que em um Switch, desenhado com WebGL 2. O teclado, o mouse, uma tela sensível ao toque ou o controle na tela; todos os temas e idiomas.

Experimente no navegador

Recursos

Tudo o que o menu de um console precisa

Cadran

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

O Cadran, o visual do PlayGuard e do PlayShelf, é o padrão 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 o app em execução. aurore::Application::setCadran(false) mantém o do borealis.

O kit do Cadran →

Uma pasta de tema: Inverno

Capturas de tela

A demo, em vários visuais

O que a Aurore acrescenta

O borealis, continuado

A Aurore acompanha o projeto original (xfangfang/borealis) e acrescenta correções e recursos de outros forks, e o que os seus apps precisam: cada um opcional, exceto as correções.

Cada mudança e sua API →

A Aurore e o borealis, lado a lado →

  • Temas: arquivos e pastas de tema, paletas a partir de uma cor de destaque, predefinições, imagens, logotipos, ícones, decorações e partículas, tudo trocado ao vivo.
  • Estilos: estilos por estado (foco, pressionado, desativado, ao passar o ponteiro), transições, vinculação de dados e rótulos de acessibilidade.
  • Views: uma grade e uma linha que reciclam, menus de contexto, botões de ícone, Markdown.
  • Layout: Yoga 3, gap, flexWrap com o foco passando de uma linha para outra, um raio por canto, gradientes.
  • Texto: uma escala de fonte para cada rótulo, redução para caber, quebras de linha limpas.
  • Foco e dicas: o foco não se perde mais em views ocultas ou destruídas; dicas estáveis no rodapé.
  • Plataformas: controles reconectados no SDL, o navegador (Emscripten), a memória de comandos do deko3d no Switch.
  • Velocidade: nenhum novo layout para um texto ou tamanho inalterado, atributos XML registrados sob demanda, texturas sem uso liberadas.

Use

No seu projeto

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

Começando do zero? template/ é um app mínimo que compila para o computador e para o Switch.

Vindo do borealis? Troque o submódulo e depois renomeie brls::, <borealis.hpp> e BRLS_ para os nomes da Aurore: um localizar e substituir. →

Compilar a demo

No 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 borealis

Apps que rodam nela

Documentação

Documentação

Licença

O código do borealis está sob a licença Apache 2.0; o Cadran, o visual padrão da Aurore, é GPLv3, assim como um app criado com ele. Software livre, mantido por JigSawFr.