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.
<!-- 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
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.
Recursos
Tudo o que o menu de um console precisa
Feita para controles
O foco se move sozinho com o direcional; o toque e o mouse também funcionam, e o rodapé mostra os botões que fazem alguma coisa.
Layout flexbox
Cada view é posicionada pelo Yoga, descrita em XML, com código só onde importa.
gap,flexWrap, um raio por canto.Gráficos vetoriais
Acelerados por hardware com o nanovg: OpenGL, Direct3D 11, deko3d no Switch, GXM no Vita, na escala de uma TV.
Componentes prontos
Abas, listas e grades que reciclam suas células, células de configurações, caixas de diálogo, folhas de ações, avisos, controles deslizantes, Markdown, todos com o estilo de um tema.
Temas
Cada cor é uma chave do tema. Arquivos e pastas de tema trazem paletas, imagens, logotipos, ícones e decorações, trocados com o app em execução, com o contraste verificado.
15 idiomas
Um catálogo JSON por idioma, trocado com o app em execução; emoji coloridos e texto da direita para a esquerda como opções.
Ferramentas
Um ambiente de testes com tempo simulado e comparação de capturas de tela, um inspetor (F12), recarga a quente de XML e temas, um profiler, um modelo de app.
A caixa de ferramentas
Log, animações, timers, tarefas em segundo plano, armazenamento: o que um app precisa ao redor de suas telas.
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.
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.
- 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,flexWrapcom 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
- Compile o seu projeto como C++20, com RTTI e exceções.
- Adicione a Aurore como submódulo e copie a pasta
resourcesdela para a raiz do seu projeto.git submodule add -b main https://github.com/JigSawFr/aurore.git library/aurore git submodule update --init --recursive - No seu
CMakeLists.txt, incluacommonOption.cmakeetoolchain.cmakeantes deproject(), adicione a biblioteca depois e vinculeAurore::aurore. - 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_demoFeito com borealis
Apps que rodam nela
- PlayGuardControle parental para o Nintendo Switch, no próprio console
- PlayShelfUma biblioteca de jogos, catálogo e downloads para o Switch
- Moonlight-SwitchStreaming de jogos Moonlight para o Switch
- wiliwiliCliente bilibili para PC, PS4, PS Vita, Xbox e Switch
- switchfinCliente Jellyfin para PC, PS4 e Switch
- SimpleModDownloaderMods do GameBanana, baixados no Switch
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.










