Un proyecto de Boréale · fork de borealis

Una interfaz al estilo Switch para tu app, en todas las pantallas

Aurore es una biblioteca de interfaz en C++ para mandos, televisores y pantallas táctiles. De serie se parece a los menús de la Nintendo Switch, y se puede rediseñar para que parezca cualquier otra cosa.

Aún no hay versión: el submódulo sigue main.

La demo de Aurore en Cadran, su aspecto por defecto: una barra de iconos a la izquierda, tarjetas, chips y botones, y los botones del mando abajo.

Dónde funciona

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

Una pantalla son unas pocas líneas de XML

Describe la pantalla en XML, maquetada con flexbox; enlaza sus vistas en C++. El foco sigue la cruceta por sí solo, la pantalla táctil y el ratón también funcionan, y cada color sigue el tema.

Créala en 15 minutos →

La pantalla 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>
Su actividad 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");
};
Lo que muestra

Hello

¡Te damos la bienvenida a Aurore!

Atrás

Demo en vivo

La demo de verdad, en tu navegador

La demo de Aurore compilada con Emscripten: el mismo código que en una Switch, dibujado con WebGL 2. El teclado, el ratón, una pantalla táctil o el mando en pantalla; todos los temas e idiomas.

Pruébalo en el navegador

Funciones

Todo lo que necesita el menú de una consola

Cadran

Un aspecto propio, sin una línea de código

Cadran, el aspecto de PlayGuard y PlayShelf, es el de Aurore por defecto: una barra de iconos, tarjetas, ventanas modales, hojas de acciones, iconos vectoriales, un tema claro y uno oscuro, idioma y tema cambiados mientras la app funciona. aurore::Application::setCadran(false) conserva el de borealis.

El kit de Cadran →

Una carpeta de tema: Invierno

Capturas

La demo, con varios aspectos

Lo que añade Aurore

borealis, continuada

Aurore sigue el proyecto original (xfangfang/borealis) y añade correcciones y funciones tomadas de otros forks, y lo que necesitan sus apps: cada una opcional, salvo las correcciones.

Cada cambio y su API →

Aurore y borealis, lado a lado →

  • Temas: archivos y carpetas de tema, paletas a partir de un color de acento, ajustes predefinidos, imágenes, logotipos, iconos, decoraciones y partículas, todo cambiado en vivo.
  • Estilos: estilos por estado (foco, pulsado, desactivado, al pasar el puntero), transiciones, vinculación de datos y etiquetas de accesibilidad.
  • Vistas: una cuadrícula y una fila que reciclan, menús contextuales, botones de icono, Markdown.
  • Maquetación: Yoga 3, gap, flexWrap con el foco de una línea a otra, un radio por esquina, degradados.
  • Texto: una escala de fuente para cada etiqueta, reducción para que quepa, saltos de línea limpios.
  • Foco y ayudas: ya no se pierde el foco en vistas ocultas o destruidas; ayudas estables en el pie.
  • Plataformas: mandos reconectados con SDL, el navegador (Emscripten), la memoria de comandos de deko3d en la Switch.
  • Velocidad: sin volver a maquetar un texto o un tamaño que no cambian, atributos XML registrados a demanda, texturas sin usar liberadas.

Úsala

En tu proyecto

  1. Compila tu proyecto como C++20, con RTTI y excepciones.
  2. Añade Aurore como submódulo y copia su carpeta resources a la raíz de tu proyecto.
    git submodule add -b main https://github.com/JigSawFr/aurore.git library/aurore
    git submodule update --init --recursive
  3. En tu CMakeLists.txt, incluye commonOption.cmake y toolchain.cmake antes de project(), añade la biblioteca después y enlaza Aurore::aurore.
  4. Elige la plataforma con -DAURORE_PLATFORM=…: DESKTOP, SWITCH, PSV, PS4, ANDROID, IOS.

¿Empiezas desde cero? template/ es una app mínima que se compila para el ordenador y la Switch.

¿Vienes de borealis? Cambia el submódulo y luego renombra brls::, <borealis.hpp> y BRLS_ con los nombres de Aurore: un buscar y reemplazar. →

Compilar la demo

En Linux, macOS o Windows; los comandos de las otras plataformas son los de la 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

Hecho con borealis

Apps que funcionan con ella

Documentación

Documentación

Licencia

El código de borealis está bajo la licencia Apache 2.0; Cadran, el aspecto por defecto de Aurore, es GPLv3, y también lo es una app creada con él. Software libre, mantenido por JigSawFr.