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.nro
To 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_example
Also, 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-rtti
and-fno-exceptions
if you have them - Use a submodule (or even better, a subrepo) to clone this repository in your project
- Copy the
resources
folder to the root of your project - For PC (meson):
- take a standard meson file
- use
subdir
to import the library folder - use the
borealis_files
,borealis_dependencies
andborealis_include
variables for respectively objects to build, dependencies (glfw...) and includes directory - add a
BOREALIS_RESOURCES
define pointing to the resources folder at runtime (soresources
)
- For Switch:
- take a standard homebrew makefile
- add a
BOREALIS_PATH
variable containing the subfolder you put the library in - use
include
to loadborealis.mk
(afterLIBDIRS
andBOREALIS_PATH
) - set
ROMFS
to the resources folder - add a
BOREALIS_RESOURCES
define pointing to the resources folder at runtime (soromfs:/
)