Any interest in a UI library based on SDL's built-in render API?

Hey all, I’ve been building a game engine for the past few years and as part of it I’ve built a UI library on top of SDL’s render API. I’m posting just to see: is anyone looking for this sort of thing? If there’s enough interest, I can write up some documentation and make a real announcement post. Otherwise, I’ll just keep using it internally.

Repo: GitHub - Net5F/AmalgamUI: A simple image-based UI library, built on the SDL2 native renderer.

Key points:

  • Fairly traditional production-ready UI library (as opposed to something more tool-focused like Dear ImGui).
  • Uses SDL’s native renderer (just give it your SDL_Renderer*, then pass SDL_Events to it and call the render() function).
  • Focused on desktop. Not aiming to be responsive for things like mobile.
  • C++20 (I could potentially drop it to C++17 if desired). No separate scripting or markup languages.
  • Image support is first-class. Almost all widgets require you to pass them images to use (no option for generated graphics).
  • Images are very easy to manage (clean api, support for nine-slice and multiple resolutions, etc).
  • Uses “absolute” positions (you choose a logical screen resolution to set all your position/size values relative to, then can choose a different actual resolution at runtime).
  • Provides simple, STL-like container classes to handle scrollable lists, grids, and collapsible containers.

The general philosophy has been: “Make it as simple and streamlined as possible to make desktop (and maybe console) game UIs.” I started with something extremely feature-sparse, and have only added things that are truly useful. I came into this with a lot of bad experiences from “kitchen sink” UI frameworks, so a lot of my decisions are in response to that.

Here’s a video showing some of the UIs I’ve made: https://youtu.be/cPiqhzhP0BM

4 Likes

That’s very cool work!

1 Like