Hardware accelerated, Nintendo Switch inspired UI library for PC and Nintendo Switch. Powered by nanovg. Skeleton based on the hybrid glfw app by fincs.
The library is still in early development and WILL lack features and contain bugs. Feel free to report them in the issues, or make a pull request if you happen to fix some.
You can see the planned features in the Projects tab.
Documentation is available right here. Warning: may not be up to date.
To build for Switch, a standard development environment must first be set up. In order to do so, refer to the Getting Started guide.
(sudo) (dkp-)pacman -S switch-glfw switch-mesa switch-glm
make -j
nxlink -s borealis_example.nroTo build for PC, the following components are required:
- meson/ninja build system
- A C++ compiler supporting the C++17 standard
- GLFW version 3.3 or higher (as a static library)
- GLM version 0.9.8 or higher
Please refer to the usual sources of information for your particular operating system. Usually the commands needed to build this project will look like this:
meson build
ninja -C build
./build/borealis_exampleAlso, please note that the resources folder must be available in the working directory, otherwise the program will fail to find the shaders.
msys2 provides all packages needed to build this project:
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-meson mingw-w64-x86_64-ninja mingw-w64-x86_64-pkg-config mingw-w64-x86_64-glfw mingw-w64-x86_64-glm
meson build
ninja -C build
./build/borealis_example- Your project must be built as C++17 (
-std=c++1z). You also need to remove-fno-rttiand-fno-exceptionsif you have them - Use a submodule (or even better, a subrepo) to clone this repository in your project
- Copy the
resourcesfolder to the root of your project - For PC (meson):
- take a standard meson file
- use
subdirto import the library folder - use the
borealis_files,borealis_dependenciesandborealis_includevariables for respectively objects to build, dependencies (glfw...) and includes directory - add a
BOREALIS_RESOURCESdefine pointing to the resources folder at runtime (soresources)
- For Switch:
- take a standard homebrew makefile
- add a
BOREALIS_PATHvariable containing the subfolder you put the library in - use
includeto loadborealis.mk(afterLIBDIRSandBOREALIS_PATH) - set
ROMFSto the resources folder - add a
BOREALIS_RESOURCESdefine pointing to the resources folder at runtime (soromfs:/)