Homebrew RELEASE Plutonium - An easy-to-use UI framework for Nintendo Switch homebrew

XorTroll

Switching between my 2DS and my Switch
OP
Developer
Joined
Dec 28, 2017
Messages
636
Trophies
0
Location
Nowhere
Website
github.com
XP
3,976
Country
Spain
Plutonium - an easy-to-use UI framework for Nintendo Switch homebrew

Plutonium is a high-level, C++ graphical library with the aim of making UIs in a more simple, user-friendly way.

Here you have some sample screenshots:

2019032315044900-DB1426D1DFD034027CECDE9C2DD914B8.jpg

2019032315045400-DB1426D1DFD034027CECDE9C2DD914B8.jpg


For further information, check the README in the links below:

GitHub link: https://github.com/XorTroll/Plutonium
Github release: https://github.com/XorTroll/Plutonium/releases

Currently version 0.2 is the latest released version.
Enjoy making homebrew with some nice UIs!
 
Last edited by XorTroll,

Miqote

Well-Known Member
Member
Joined
May 2, 2018
Messages
259
Trophies
0
XP
791
Country
Macedonia, The Former Yugoslav Republic of
This is pretty neat, good stuff! I think making a good UI was one of the main reasons holding people back, or at least it was for me.
 

XorTroll

Switching between my 2DS and my Switch
OP
Developer
Joined
Dec 28, 2017
Messages
636
Trophies
0
Location
Nowhere
Website
github.com
XP
3,976
Country
Spain
Just check out Goldleaf's UI, that beauty is all handled via this library.
To be honest, I made this library to have a good UI system for Goldleaf and future projects like Brew.js
 

annoo

New Member
Newbie
Joined
Dec 29, 2018
Messages
3
Trophies
0
Age
25
XP
46
Country
Germany
Already played around with it in the last few days. Great to see an official release!
Great job!
 

XorTroll

Switching between my 2DS and my Switch
OP
Developer
Joined
Dec 28, 2017
Messages
636
Trophies
0
Location
Nowhere
Website
github.com
XP
3,976
Country
Spain
Plutonium 0.2 has been released! Introducing roundy and crispy rendering now, as you might have seen in Goldleaf!
Link: https://github.com/XorTroll/Plutonium/releases/tag/0.2

Changelog:

  • Rendering:
    • The internal application rendering system has slightly changed to improve dialogs' rendering, which has also changed some rendering callbacks for elements.
    • New functions have been added into SDL2-based rendering system, mostly related to round shapes.
  • Dialogs have been redesigned, without the old fullscreen, round shapes. Now the right joystick allows fast moving among options, and all the margins and sizes are automatically computed.

  • Elements:
    • Rounded shapes have been added, now applying to progress bars and dialogs.
    • Some element destructors have been fixed and/or improved.
  • Added a WIP focus system, which is barely untested:
    • It's based in Windows's focus system with UI elements.
    • Only an element has focus, and focus is changed via touch or R-Stick, based on stick directions.
    • As said it's WIP, so might not work as expected. By default elements don't use the focus system.

--------------------- MERGED ---------------------------

Also I've updated this thread with some screenshots (how didn't I have any, this is an UI library, jesus)
 
D

Deleted User

Guest
more examples or a better usage would be very helpful... i tried it and after 5 Days of installing cuz im to silly i dont know how to add a button..... maybe because im learning C++ currently and know 5 % of the complete usages D:
 

Manurocker95

Game Developer & Pokémon Master
Member
Joined
May 29, 2016
Messages
1,467
Trophies
0
Age
26
Location
Madrid
Website
manuelrodriguezmatesanz.com
XP
2,129
Country
Spain
more examples or a better usage would be very helpful... i tried it and after 5 Days of installing cuz im to silly i dont know how to add a button..... maybe because im learning C++ currently and know 5 % of the complete usages D:
Just need to create a button object in your scene
 
D

Deleted User

Guest
Why not use IMGUI ? The opengl3 renderer work as it using the glad loader build option :)
 

XorTroll

Switching between my 2DS and my Switch
OP
Developer
Joined
Dec 28, 2017
Messages
636
Trophies
0
Location
Nowhere
Website
github.com
XP
3,976
Country
Spain
Released 0.2.1 with a few small changes: https://github.com/XorTroll/Plutonium/releases/tag/0.2.1

Changelog:

  • Elements
    • When moving among Menu items, going upper than the top element will move to the latest element, ang going down on the latest one will start at the top.
  • Examples
    • Added two new examples: GlobalInputs and Dialogs.
 
  • Like
Reactions: hippy dave

ron1ck

New Member
Newbie
Joined
Aug 11, 2019
Messages
1
Trophies
0
Age
31
XP
22
Country
United States
Nice tool!, I've been following some of your examples. But I want to show the applet for selecting users
And I get LibAppletExitReason_Unexpected

When debugging I noticed all the previews commands before appletHolderJoin return R_SUCCEDED,
but after doing appletHolderJoin the exit reason of LibAppletExitReason is
LibAppletExitReason_Unexpected

I used Dialogs Example as base

Do you know what I could be doing wrong?

Regards
 

Acta

New Member
Newbie
Joined
Nov 15, 2018
Messages
3
Trophies
0
Age
24
XP
39
Country
Australia
I'm trying to build the examples, but cannot get it to compile at all. In the examples I get the following errors:
Code:
linking Dialogs.elf
f:/devkitpro/devkita64/bin/../lib/gcc/aarch64-none-elf/9.2.0/../../../../aarch64-none-elf/bin/ld.exe: F:/Users/Acta/Documents/GitHub/Plutonium-0.2.1/Examples/Dialogs/Plutonium/lib\libpu.a(Renderer.o): in function `romfsInit':
C:/devkitPro/libnx/include/switch/runtime/devices/romfs_dev.h:62: undefined reference to `romfsMount'
collect2.exe: error: ld returned 1 exit status
make[1]: *** [/opt/devkitpro/libnx/switch_rules:80: /f/Users/Acta/Documents/GitHub/Plutonium-0.2.1/Examples/Dialogs/Dialogs.elf] Error 1
make: *** [Makefile:156: Build] Error 2

And I also cannot compile the latest commit of Plutonium, it errors out with the following:
Code:
F:/Users/Acta/Documents/GitHub/Plutonium/Plutonium/Source/pu/ui/render/render_Renderer.cpp: In member function 'void pu::ui::render::Renderer::Initialize()':
F:/Users/Acta/Documents/GitHub/Plutonium/Plutonium/Source/pu/ui/render/render_Renderer.cpp:31:42: error: 'PlServiceType_User' was not declared in this scope; did you mean 'BsdServiceType_User'?
   31 |                 Result rc = plInitialize(PlServiceType_User);
      |                                          ^~~~~~~~~~~~~~~~~~
      |                                          BsdServiceType_User
make[2]: *** [/opt/devkitpro/devkitA64/base_rules:14: render_Renderer.o] Error 1
make[1]: *** [Makefile:99: build] Error 2
make[1]: Leaving directory '/f/Users/Acta/Documents/GitHub/Plutonium/Plutonium'
make: *** [Makefile:9: all] Error 2

Any suggestions?
 
General chit-chat
Help Users
  • No one is chatting at the moment.
    Psionic Roshambo @ Psionic Roshambo: https://imgur.com/gallery/THrBdLQ