Skip to content

Latest commit

 

History

History
66 lines (41 loc) · 2.46 KB

README.md

File metadata and controls

66 lines (41 loc) · 2.46 KB

Plutonium

Easy-to-use, SDL2-based UI framework for Nintendo Switch homebrew

What is Plutonium?

Plutonium is a high-level, C++ graphics library with the aim of making Nintendo Switch homebrew UIs in a more user-firendly way.

It uses libnx and SDL2, so both libraries are required. To be more exact, this libraries should be installed via pacman:

switch-sdl2 switch-sdl2_ttf switch-sdl2_image switch-sdl2_gfx switch-sdl2_mixer switch-mesa switch-glad switch-glm switch-libdrm_nouveau switch-libwebp switch-libpng switch-freetype switch-bzip2 switch-libjpeg-turbo switch-opusfile switch-libopus

Plutonium internally uses SDL2 for UI rendering.

Plutonium's API is somewhat based on WPF/WinForms's system. The dev doesn't have to interact with the rendering (unless you want to), as it's done via a main rendering system and different objects to render.

Using this libraries

Simply download/fork this repository ;)

Check the basic example for a basic usage of the libraries. In case you want to see a really powerful app which really shows what Plutonium is capable of, take a look at Goldleaf, uLaunch or many other homebrew apps made using this libraries.

Check the documentation for a more detailed explanation of the library's usage.

Simple project layout

This is how a regular Plutonium project would (more or less) have its Makefile and project layout using Plutonium:

  • Makefile
...

LIBS := -lpu -lfreetype -lSDL2_mixer -lopusfile -lopus -lmodplug -lmpg123 -lvorbisidec -logg -lSDL2_ttf -lSDL2_gfx -lSDL2_image -lSDL2 -lEGL -lGLESv2 -lglapi -ldrm_nouveau -lwebp -lpng -ljpeg `sdl2-config --libs` `freetype-config --libs` -lnx
LIBDIRS := $(PORTLIBS) $(LIBNX) $(CURDIR)/Plutonium

...
  • Project directory
Project
 |
 |-- Makefile
 |-- source
 |-- include
 |-- Plutonium
      |
      |-- include
      |-- lib

Building

Clone the repository, cd into Plutonium directory and run make.

You will need devkitPro, libnx and all the libraries mentioned above (installed via pacman).

Support

If you would like to be more informed about my projects' status and support, you should check my Discord server. It's a simple server for Nintendo homebrew and hacking stuff, focused on my projects.

If you like my work, you should take a look at my Patreon page!